重定向和轉發
重定向
概念
重定向
servlet中重定向的意思也就是訪問一個url后返回再訪問另一個url地址
也就是說頁面跳轉是在瀏覽器中進行的
實現步驟
方法一
1.使用請求的setstatus方法設置好狀態
2.使用請求的sethead設置location為重定向地址
方法二
1.直接使用sendRedirect傳入重定向地址即可重定向
特點
-
地址欄:顯示新的地址
-
請求次數:2次
-
根目錄:http://localhost:8080/ 沒有項目的名字
-
請求域中的數據會丟失,因為是2次請求
轉發
概念
轉移發放,servlet中指的是從一個servlet中轉到另一個servlet,
也就是說是再服務器中進行的頁面跳轉
實現步驟
1.設置轉發路徑
2.使用請求來創建一個RequestDispatcher對象
3.使用RequestDispatcher對象調用forward方法進行轉發
特點
-
地址欄不發生變化,顯示的是上一個頁面的地址
-
請求次數:只有1次請求
-
根目錄:http://localhost:8080/項目地址/,包含了項目的訪問地址
-
請求域中數據不會丟失
重定向與轉發的區別
區別 | 轉發forward() | 重定向sendRedirect() |
---|---|---|
根目錄 | 包含項目訪問地址 | 沒有項目訪問地址 |
地址欄 | 不會發生變化 | 會發生變化 |
哪里跳轉 | 服務器端進行的跳轉 | 瀏覽器端進行的跳轉 |
請求域中數據 | 不會丟失 | 會丟失 |
包含
概念
請求包含是指多個Servlet共同處理一個請求。