[語法] HttpServletResponse物件為何有getWriter
我從以前就一直覺得很奇怪,為何要對HttpServletResponse物件,
寫入給http response本身的訊息時,要從HttpServletResponse物件調用getWriter方法
然後透過PrintWriter物件寫入回傳訊息。
而非直接寫入HttpServletResponse物件?例如HttpServletResponse物件提供了
一些setXXX方法,例如setContentType、setHeader、setCacheControl......
來直接寫入訊息到HttpServletResponse物件。既然可以有這些setXXX方法
那麼為何要將主要回傳訊息寫入HttpServletResponse物件,要用的是getWriter方法?
我目前的理解是:
因為HttpServletResponse物件跟http response本身,兩者是關聯的,
既然兩者有關連,那麼若是HttpServletResponse物件提供某些類別/介面,
由於
介面與HttpServletResponse物件、HttpServletResponse物件跟http response的關聯,
所以,外部的訊息就可藉由使用這些類別/介面,將外部訊息寫入http response本身。
因此,只要HttpServletResponse物件提供某些類別/介面,
即可讓外部程式將訊息寫入http response本身。
所以,HttpServletResponse物件具備了某些類別/介面,可透過getXXX方法將其取出,
這個getXXX方法,就是getWriter方法、getOutputStream方法。
透過getWriter方法取出的介面,經過實例化後成為PrintWriter物件,
這時若要將外部訊息寫入http response本身,就只要將該訊息寫入PrintWriter物件。
即可透過上面所述的關聯性,將該訊息寫入http response本身。
而透過此法將外部訊息寫入http response本身,原理和一開始所以提到的那些
setXXX方法不同,而是先要取得介面才行,難怪明明是要寫入(set)訊息,卻是要先
getWriter、getOutputStream。
希望這樣理解沒有錯誤,有錯的話麻煩鞭小力一點= =
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.229.144.168 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/java/M.1703256016.A.A70.html
→
12/22 22:52,
11月前
, 1F
12/22 22:52, 1F
→
12/22 22:55,
11月前
, 2F
12/22 22:55, 2F
→
12/22 22:56,
11月前
, 3F
12/22 22:56, 3F
→
12/22 22:57,
11月前
, 4F
12/22 22:57, 4F
→
12/22 22:57,
11月前
, 5F
12/22 22:57, 5F
HTTP訊息分成三部分這我知道,我之所以會強調本身,只是想將
Java的HttpServletResponse物件,跟http協定的回應,兩者分開而已。
→
12/22 22:58,
11月前
, 6F
12/22 22:58, 6F
→
12/22 22:59,
11月前
, 7F
12/22 22:59, 7F
喔喔,這樣說明又更能補充我上面的說法了,感謝大大。
→
12/22 23:01,
11月前
, 8F
12/22 23:01, 8F
→
12/22 23:02,
11月前
, 9F
12/22 23:02, 9F
→
12/22 23:02,
11月前
, 10F
12/22 23:02, 10F
→
12/22 23:03,
11月前
, 11F
12/22 23:03, 11F
→
12/22 23:04,
11月前
, 12F
12/22 23:04, 12F
→
12/22 23:05,
11月前
, 13F
12/22 23:05, 13F
→
12/22 23:07,
11月前
, 14F
12/22 23:07, 14F
→
12/22 23:07,
11月前
, 15F
12/22 23:07, 15F
哇~~~講的真詳細,真的很謝謝大大撥冗指導。
※ 編輯: TKB5566 (36.229.144.168 臺灣), 12/22/2023 23:08:43
→
12/25 14:29,
11月前
, 16F
12/25 14:29, 16F
→
12/25 22:51,
11月前
, 17F
12/25 22:51, 17F
推
07/13 06:08,
1年前
, 18F
07/13 06:08, 18F
→
09/16 10:02,
1年前
, 19F
09/16 10:02, 19F
→
09/16 10:02,
1年前
, 20F
09/16 10:02, 20F
java 近期熱門文章
PTT數位生活區 即時熱門文章