請求轉發的forward , include 的區別
阿新 • • 發佈:2019-01-27
nRequestDispatcher.forward()方法
RequestDispatcher介面所定義的forward()方法可以將HTTP請求轉送給其他Web資源(例如Servlet、JSP或HTML)進行處理,併產生HTTP迴應。
呼叫forward()方法時必須注意下列兩點:
n在HTTP迴應被“確認”(committed)以前才能呼叫forward()方法(這裡的“確認”是指將HTTP迴應的內容主體送回使用者端),否則將丟擲IllegalStateException異常。
n呼叫forward()方法後,原先存放在HttpResponse物件中的內容將會自動被清除(本章稍後的例項演練
nRequestDispatcher.include()方法
RequestDispatcher介面的include()方法與forward()方法非常類似,惟一的不同在於:利用include()方法將HTTP請求轉送給其他Servlet後,被呼叫的Servlet雖然可以處理這個HTTP請求,但是最後的主導權仍然是在原來的Servlet。換言之,被呼叫的Servlet如果產生任何HTTP迴應,將會併入原來的HttpResponse物件
簡單的說:
forward方法是把請求的內容轉發到另外的一個servlet/jsp.
include是把另一個servlet/jsp處理過後的內容拿過來與此時servlet的內容一同輸出.