在J2EE開發中,請求轉發與請求重定向是最基本的概念之一,下文主要詳細分析其區別:
一.實現
(1)請求轉發:
- 首先調用類HttpServletRequest的getRequestDispather(String url)方法,獲取RequestDispather對象;
- 調用RequestDispather類的forward(request,response)方法,進行請求重定向操作。
- 調用HttpServletResponse的sendRedirect(String url)方法,進行請求重定向操作。
二.區別
(1) 本質區別: 請求轉發只發送一次請求(相當於把請求內容放入自己的頁面),請求重定向則發送了兩次請求。
(2) 具體:
1.請求轉發地址欄是初次發出的地址;請求重定向是最後一次相應的地址
2.請求轉發在最終的servlet中,request對象和中轉request對象是同一個對象;而請求重定向中request不是同一個。
沒有請求轉發J2EE的整體架構局出不來。
(3) 請求轉發給當前WEB資源,請求重定向可以重定向到任意資源
(4) 請求轉發:‘/’代表當前應用的根目錄。請求重定向:‘/’代碼當前站點