response重定向與request轉發


重定向與轉發的區別:

  ⑴重定向:將一個請求處理完畢需要執行另一個請求,瀏覽器重新發送一個請求,重定向請求可以是任意請求。

    轉發:在相應一個請求的時候,執行一部分之后需要轉向另一個請求繼續執行,比如servlet處理之后需要轉向到jsp顯示數據。

  ⑵運用:

  重定向:

redirect.sendDirect(轉發路徑);//次路徑可以是任意應用路徑
或者:
response.setStatus(302);//向瀏覽器發送302狀態碼
response.setHeader("location",重定向路徑);//發送響應頭Location為所給路徑

  轉發:

request.getRequestDisparter(轉發路徑).forward(request,response);

  ⑶特點與區別

  轉發的應用路徑與當前應用共享request,重定向則不行。

  轉發發生在服務端,重定向發生在瀏覽器。

  轉發路徑只能在當前應用內,重定向路徑任意。

  ⑷圖解

  

 

由於轉發和重定向的路徑改變問題也導致了jsp中關於外部引用格式的問題,比如css路徑的正確書寫:

因為重定向(以定向jsp文件為例)之后的路徑是是定向后的文件的具體路徑,而轉發后的路徑是沒變的,仍然是設置轉發的文件路徑(以servlet向jsp轉發),即servlet路徑,詳情如下圖:


免責聲明!

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



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