※ 本文轉寄自 ptt.cc, 文章原始頁面
[語法] 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
17 則留言
TKB5566 作者的近期文章
2PSY
Re: [疑問] 諮商師的話我原本已經有一段時間因為經濟拮据,沒去接受諮商了,但是這陣子感覺到 那些諮商師對我講的話,實在是太困擾我了,我想我還是得去好好跟諮商師搞清楚 是怎麼一回事。 所以以下會列出諮商師對我講過的,我認為應該要重新檢視的話: 1 我表達我認為當前的
8PSY
[疑問] 諮商師的話針對先前的諮商,我發覺我忘記講一件事情。就是之前諮商的時候, 諮商師對我說,我是因為都沒有對父母清楚溝通清楚表達自己的需求。 所以我跟父母之間才會變成這樣。 聽到這段話,當下我沒有直接回應,大概是因為我當下還沒想到要怎麼回應, 到了諮商結束
3PSY
[疑問] 剛剛的發文剛剛的發文也太負面了,我想我還是想一些有建設性的東西。 我看這個樣子,目前也只能設法讓我跟諮商師之間,想法保持一致。 既然我的重點是解決與家人之間的問題,那麼就要讓諮商師也能把重點放在 這上面。而非將重點放在我個人成長的問題。 我希望可以更
8PSY
[疑問] 諮商前的準備今天早上,我看到我媽在廚房走動,腳連續碰到地上的雜物好幾次, 所以我就跟我媽說地上有東西,走路可以注意一下嗎。 然而我媽卻大怒,她認為這又沒有怎樣、她也沒有看到地上有東西,我是在叫什麼。 我回我媽我只是提醒你走路的時候注意一下,剛剛沒有看到
→
→
→
→
→
→
→
→
→
→
→
→
→
→
→
→
→