1、請求轉發和請求包含的相同點
(1)請求包含和請求轉發都是在一個請求中,訪問兩個Servlet。
(2)請求包含和請求轉發都是有一個Servlet去調用執行另一個Servlet
(3)請求包含和請求轉發都可以共享request中的數據,因為都是一個請求。
(4)請求轉發和請求包含都要使用RequestDispatcher對象:RequestDispatcher rd = request.getRequestDispatcher("/BServlet");
(5)請求轉發和請求包含的路徑都是服務器端路徑,相對當前應用
2、請求轉發和請求包含的不同點
(1)請求轉發執行RequestDispatcher的forward()方法:rd.forward(request,response);
(2)請求包含執行RequestDispatcher的include()方法:rd.include(request,response);
3、 請求轉發與重定向
* 請求轉發是一個請求,而重定向是兩個請求
* 請求轉發,是使用RequestDispatcher來完成,重定向使用response對象來完成
* 請求轉發的路徑都是服務器端路徑,而重定向是客戶端路徑,需要給出應用名稱
* 請求轉發在瀏覽器地址欄中的地址是第一個Servlet的路徑,而重定向在地址欄中的地址是第二個請求的Servlet的路徑
* 請求轉發中的兩個Servlet是可以共享request數據的,而重定向因為是兩個請求,所以不能共享request數據
* 請求轉發只能轉發到本應用的其他Servlet,而重定向可以重定向到其他應用中。