20160322 javaweb 學習筆記--response 重定向

破玉發表於2016-03-22
//一般方法
 response.setStatus(302);
 response.setHeader("Location", "/20160314/index.jsp");

  

//好方法
response.sendRedirect("/20160314/index.jsp");

  

利用response設定狀態碼為302,並設定響應頭Location為要重定向到的地址,就可以實現請求重定向操作了。 為了方便進行請求重定向操作,response提供了response.sendRedirec("....");實現請求重定向。

在大部分情況下請求重定向和轉發的效果是差不多的,這時候我們推薦使用轉發,以減少對伺服器的訪問。 而在某些情況下是需要使用轉發的,目的往往是為了改變瀏覽器位址列裡的地址(如登入成功後轉到主頁),和更改重新整理操作(如加入商品到購物車後轉到購物車頁面的操作)

 

 

response生成響應注意事項

 

 

 

getOutputStream和getWriter這兩個方法互相排斥,呼叫了其中的任何一個方法後,就不能再呼叫另一方法。

Servlet程式向ServletOutputStream或PrintWriter物件中寫入的資料將被Servlet引擎從response裡面獲取,Servlet引擎將這些資料當作響應訊息的正文,然後再與響應狀態行和各響應頭組合後輸出到客戶端。 Serlvet的service方法結束後,Servlet引擎將檢查getWriter或getOutputStream方法返回的輸出流物件是否已經呼叫過close方法,如果沒有,Servlet引擎tomcat將呼叫close方法關閉該輸出流物件。

 

相關文章