JavaWeb學習——頁面跳轉方式


JavaWeb學習——頁面跳轉方式

摘要:本文主要學習了請求轉發和響應重定向,以及兩者之間的區別。

請求轉發

相關方法

使用HttpServletRequest對象的 getRequestDispatcher(String path) 方法獲取RequestDispatcher類型的轉發器。

使用RequestDispatcher轉發器的 forward(ServletRequest request, ServletResponse response) 方法進行轉發。

實例

1 @Override
2 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
3     req.getRequestDispatcher("/test.html").forward(req, resp);
4 }

響應重定向

相關方法

使用HttpServletResponse對象的 sendRedirect(String location) 方法進行重定向到其他資源。

實例

1 @Override
2 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
3     resp.sendRedirect("/HelloWorld/test.html");
4 }

請求轉發和響應重定向的區別

發送次數

轉發只發送一次請求。

重定向發送兩次請求。

地址欄變化

轉發地址欄沒有變化,執行刷新相當於重新發送信息到原頁面。

重定向地址欄有變化,執行刷新將發給新頁面。

訪問限制

轉發可以訪問WEB-INF下的資源。

重定向不可以訪問WEB-INF下的資源。

發生位置

轉發發生在服務器內部。

重定向發生在瀏覽器端。

跳轉地址

轉發不能跳轉到本應用外的URL。

重定向可以跳轉到任意URL。

訪問屬性

通過 request.setAttribute(); 設置的屬性,如果讓下一個頁面訪問,只能通過轉發。

通過 session.setAttribute(); 設置的屬性,如果讓下一個頁面訪問,轉發和重定向都可以,建議使用轉發。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM