質問するログイン新規登録

回答編集履歴

1

誤字訂正

2020/05/10 00:01

投稿

amadablam
amadablam

スコア417

answer CHANGED
@@ -1,4 +1,4 @@
1
1
  簡単に言ってしまえば ```include()``` メソッドが ```out.println()``` メソッドと同等の処理を内部でやってくれているからです。そのため ```include()``` メソッドには ```response``` オブジェクトを渡してやる必要があるのです。
2
2
 
3
3
  具体的には、
4
- ```PrintWriter out = response.getWriter();``` のコードでは ```response``` オブジェクトに書き込みを行うための ```PrintWriter``` オブジェクト(書き込み用バッファ)を取得して ```out``` という名前で参照できるようにしていますよね。そしてこの ```out``` に対して ```println()``` メソッドで書き込みを行っているわけです。```include()``` メソッドが呼び出されると、引数に ```response``` オブジェクトが渡されていると思いますが、この ```response``` オブジェクトから ```getWriter()``` メソッドで取得する ```PrintWriter``` オブジェクトは、すでに書き込みが行われている先ほどの ```out``` が参照するオブジェクトとイコールです。したがって ```include()``` メソッド内の処理ではJSPの内容をこの ```out``` に書きだしてから処理は元のメソッドに戻り、続きの書き込み(サンプル・プログラムでは</body>と<html>)を行って、最終的に完成したHTMLをクライアントに変装しているという流れになります。
4
+ ```PrintWriter out = response.getWriter();``` のコードでは ```response``` オブジェクトに書き込みを行うための ```PrintWriter``` オブジェクト(書き込み用バッファ)を取得して ```out``` という名前で参照できるようにしていますよね。そしてこの ```out``` に対して ```println()``` メソッドで書き込みを行っているわけです。```include()``` メソッドが呼び出されると、引数に ```response``` オブジェクトが渡されていると思いますが、この ```response``` オブジェクトから ```getWriter()``` メソッドで取得する ```PrintWriter``` オブジェクトは、すでに書き込みが行われている先ほどの ```out``` が参照するオブジェクトとイコールです。したがって ```include()``` メソッド内の処理ではJSPの内容をこの ```out``` に書きだしてから処理は元のメソッドに戻り、続きの書き込み(サンプル・プログラムでは</body>と<html>)を行って、最終的に完成したHTMLをクライアントに返送するという流れになります。