forword與include區別

 


forwordinclude區別


Forwordinclude還有一個重要的區別:

forword在調用者程序中設置的響應的狀態碼和響應頭不會被忽略在被調用者程序中設置響應狀態碼和響應頭也不會被忽略。

Include會被忽略

這也是亂碼的一個原因,使用include的時候要調用程序中寫上respose.setContentType(“text/html;charest=utf-8”)不管你是不是用filter統一處理過的字符。


RequestDispatcher.forward()方法

RequestDispatcher接口所定義的forward()方法可以將HTTP請求轉送給其他Web資源(例如ServletJSPHTML)進行處理,併產生HTTP迴應。

調用forward()方法時必須注意下列兩點:

HTTP迴應被“確認”(committed)以前才能調用forward()方法(這裏的“確認”是指將HTTP迴應的內容主體送回用戶端),否則將拋出IllegalStateException異常。

調用forward()方法後,原先存放在HttpResponse對象中的內容將會自動被清除(本章稍後的實例演練2-3將探討此議題)。

RequestDispatcher.include()方法

RequestDispatcher接口的include()方法與forward()方法非常類似,惟一的不同在於:利用include()方法將HTTP請求轉送給其他Servlet後,被調用的Servlet雖然可以處理這個HTTP請求,但是最後的主導權仍然是在原來的Servlet。換言之,被調用的Servlet如果產生任何HTTP迴應,將會併入原來的HttpResponse對象


發佈了59 篇原創文章 · 獲贊 4 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章