天天看點

Servlet請求轉發與重定向

1.請求轉發

  特點:1、一次請求,一次響應

               2、請求轉發到的資源中可以直接擷取請求攜帶的資料

               3、浏覽器位址欄顯示使用者所送出的請求路徑

               4、隻能跳轉到目前應用的資源中

  forward()與include()方法:

        這兩個方法對請求來說是一樣的,不同在響應對象上。

        輸出流開啟時間不同:forward()是在請求轉發後開啟的;include()是在請求轉發前開啟的。

        對用戶端的響應不同 : forward()有請求轉發後的Servlet給出的;include()是在請求轉發前的Servlet給出的。

  代碼:

request.getRequestDispatcher("index.jsp").forward(request, response);
request.getRequestDispatcher("index.jsp").include(request, response);
           

2.重定向

    特點:1、兩次請求,兩次響應(使用者看不到)

                2、請求轉發到的資源中不能直接擷取請求攜帶的資料

                3、浏覽器位址欄顯示的為重定向的請求路徑(防止表單重複送出)

                4、不僅可以跳轉到目前應用的資源中,也可以跳轉到其他應用中

response.sendRedirect("http://www.baidu.com");
//攜帶資料
response.sendRedirect("register2?pname="+name);
           

3.請求轉發與重定向的使用選擇

     1、需要跳轉到其他應用,使用重定向

     2、處理表單資料的Servlet要跳轉到其他的Servlet,需要重定向

     3、對請求處理的Servlet的執行需要消耗大量的伺服器資源,執行完後需要重定向

     4、其他情況一般使用請求轉發

繼續閱讀