回答編集履歴
1
文言を修正
answer
CHANGED
|
@@ -3,21 +3,22 @@
|
|
|
3
3
|
|
|
4
4
|
> responseとは送信に関してだと理解していたのですが、それを受け取るっていうのがよく理解ができないです。
|
|
5
5
|
|
|
6
|
-
ここでいう”受け取る”っていうのは、doGetメソッドの引数
|
|
6
|
+
ここでいう”受け取る”っていうのは、doGetメソッドの引数にresponse受け取るという意味ではないですか?
|
|
7
7
|
requestももちろん受け取ってますが・・・
|
|
8
8
|
|
|
9
|
-
考
|
|
9
|
+
思考停止して、訂正するのも良くないと思いますし、きちんと説明されるクセを付けたほうが良いかと思います。
|
|
10
10
|
もし、私の勘違いでしたら、読み飛ばしていただいて結構です。
|
|
11
11
|
|
|
12
12
|
---
|
|
13
|
+
サーブレットを書いて私が一番最初に戸惑ったというか違和感があったのは、
|
|
13
|
-
|
|
14
|
+
いわゆる戻り値を作成してreturnするのでなく
|
|
14
|
-
引数としてresponseが来ることでした
|
|
15
|
+
引数としてresponseが来ることでした。
|
|
15
16
|
|
|
16
17
|
まぁ、詳しくはmts10806さんの回答先のリンクを読まれるのが良いと思いますが。
|
|
17
18
|
|
|
18
19
|
ざっくり要点だけいうと
|
|
19
20
|
|
|
20
|
-
レストランで例えるなら、注文票(request)と皿(response)を用意するので、厨房に対して
|
|
21
|
+
レストランで例えるなら、注文票(request)と皿(response)を用意するので、厨房(プログラマ)に対して
|
|
21
22
|
皿に料理を載せてくれ。
|
|
22
23
|
|
|
23
24
|
という感じになっています。
|
|
@@ -28,19 +29,22 @@
|
|
|
28
29
|
|
|
29
30
|
ゼロからHTTPリクエストを解析してレスポンスを生成してというのを書くのは非常に面倒なので
|
|
30
31
|
フレームワーク化されています。
|
|
31
|
-
※ここいうフレームワークは、広義の意味で特定の何かのプロダクトをさすものではありません。
|
|
32
|
+
※ここでいうフレームワークは、広義の意味で特定の何かのプロダクトをさすものではありません。
|
|
32
33
|
|
|
33
|
-
サーブレットはサーブレットコンテナ上で動くものです。
|
|
34
|
+
サーブレットはサーブレットコンテナ上で動くもので、ある程度の処理を共通化しています。
|
|
34
|
-
|
|
35
|
+
そのため実装箇所が部分的になり、実装の手間の削減や、実装箇所が減る=バグの混入がへるので
|
|
36
|
+
品質の担保を期待できますが、
|
|
35
37
|
|
|
38
|
+
その恩恵を受けるために、フレームワークのルールにのっとる必要があります。
|
|
39
|
+
|
|
36
40
|
HttpServletResponse を returnするには、その実態を返却するためのインスタンス化が必要ですが、
|
|
37
41
|
フレームワークはブラックボックス化されているので、どのようにオブジェクトを構築すれば
|
|
38
|
-
いいか
|
|
42
|
+
いいかプログラマには、わかりません。
|
|
39
43
|
内部構造を知らずにオブジェクトを生成すればヌルポの嵐になるかもしれませんし、
|
|
40
|
-
そもそも、そんな面倒な
|
|
44
|
+
そもそも、そんな面倒な生成手順など覚えたくないわけです。
|
|
41
45
|
|
|
42
46
|
ここで用いられてる解決方法が[制御の反転](https://ja.wikipedia.org/wiki/%E5%88%B6%E5%BE%A1%E3%81%AE%E5%8F%8D%E8%BB%A2)と呼ばれるものです。
|
|
43
47
|
|
|
44
|
-
オブジェクトをnewさせるのでなく、フレームワーク側でnewさせたオブジェクトに対して操作をさせるという考え方です。
|
|
48
|
+
responseオブジェクトをnewさせるのでなく、フレームワーク側でnewさせたオブジェクトに対して操作をさせるという考え方です。
|
|
45
49
|
|
|
46
50
|
という感じで、入力用と出力用の両方のオブジェクトを引数として渡すようになっています。
|