新手筆記(2) Servlet使用sendRedirect()方法和forward()方法重定向的區別


sendRedirect()方法
        response.sendRedirect(跳轉頁面URL)
        就是服務端根據邏輯,發送一個狀態碼(Location ,狀態碼320),告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有參數重新請求,所以session,request參數都可以獲取。
        服務方(如:servlet)直接將目標URL發回瀏覽器,讓瀏覽器自己自動重新向目標URL發出HTTP請求。 
        重定向是作為不同請求來看待的。

在上面我是使用了doGet的方法來實現,在此之前我在頁面中傳入了兩個參數,而在使用sendRedirect方法進行重定向時,參數並沒有被一起傳輸過去。

 

RequestDispatcher.forward()方法
        forward是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然后把這些內容再發給瀏覽器,瀏覽器根本不知道服務器發送的內容是從哪兒來的,所以它的地址欄中還是原來的地址。 
        服務方(如:servlet)將請求轉發到同一個WEB應用程序中另一個Servlet(或:JSP)--第三方 進行處理(該過程瀏覽器方-客戶方並不知道),讓這個第三方直接將結果返回給瀏覽器方。

而使用forword()方法時,傳入的參數也能隨之一起跳轉。

 


免責聲明!

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



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