Servlet中轉發與重定向的區別
阿新 • • 發佈:2021-01-22
技術標籤:原創知識點課後作品javaservletmyeclipse
開發工具和關鍵技術:MyEclipse CI,Java、Servlet
作者:金建勇
撰寫時間:2019年1月18日
在學習Servlet後,我們知道了如何頁面跳轉和從頁面獲取引數等。下面要說的就是其中的頁面跳轉,頁面跳轉是開發一個web應用經常會發生的事情。比如登入成功或是失敗後,分別會跳轉到不同的頁面。跳轉的方式有兩種,服務端跳轉(轉發)和客戶端跳轉(重定向)。
這兩種當然是有不同之處,下面就來看看兩者的區別。
轉發的特點:
- 位址列不發生變化,顯示的是上一個頁面的地址
- 請求次數:只有1次請求
- 根目錄:http://localhost:8080/專案地址/,包含了專案的訪問地址
- 請求域中資料不會丟失
程式碼如下圖所示:
在瀏覽器位址列輸入http://localhost:8080/JWeb/LoginServlet,
效果如下圖所示:
可以看到頁面成功跳轉了,但是位址列沒有發生變化。
下面再看重定向
特點:
- 位址列:顯示新的地址
- 請求次數:2次
- 根目錄:http://localhost:8080/ 沒有專案的名字
- 請求域中的資料會丟失,因為是2次請求
程式碼如下圖所示:
同樣瀏覽器位址列輸入http://localhost:8080/JWeb/LoginServlet
效果如下圖所示:
頁面成功跳轉了,但是位址列發生了變化。
以上就是Servlet中轉發和重定向的最大區別,詳細區別如下圖所示:
(摘自學習文件)