您好,登錄后才能下訂單哦!
轉發的過程:(以servlet和jsp為例)
瀏覽器首先發送一個請求到服務器端,服務器端發現匹配的 servlet,并指定它去執行,當這個 servlet 執行完之后,它要調用getRequestDispacther()方法,把請求轉發給指定的jsp頁面,整個流程都是在服務器端完成的,而且是在同一個請求里面完成的,因此 servlet 和 jsp 共享的是同一個request,在 servlet 里面存放的所有東西,在jsp頁面中都能取出來。整個過程是一個請求,一個響應。
易錯點:
a)地址欄不會改變
b)轉發只能轉發到當前web應用內的資源
c)在轉發過程中,可以把數據保存到request域對象中(因為轉發使用同一個request域)
d)轉發是在服務器端的跳轉,瀏覽器并不知情
?
**重定向??resp.sendRedirect("/要跳轉的地址");
重定向的過程:(以servlet和jsp為例)**
瀏覽器發送一個請求到服務器端,服務器端匹配servlet,這都和請求轉發一樣,servlet 處理完之后調用了sendRedirect()這個方法,這個方法是response的方法,所以當這個servlet處理完之后,看到response.senRedirect()方法,立即向瀏覽器返回這個響應(包含響應報頭和新的URL地址),響應告訴瀏覽器你必須要再發送一個請求,去訪問 jsp頁面,緊接著瀏覽器收到這個請求后,立刻又重新發出一個新的請求,去請求 jsp頁面。這兩個請求互不干擾,相互獨立,在前面request里面 setAttribute() 的任何東西,在后面的request里面都獲取不了。可見,在重定向里面是兩個請求,兩個響應。
易錯點:
a)地址欄會改變,變成重定向后的地址
b)重定向可以跳轉到當前web應用或其他web應用,甚至是外部域名網站
c)不能在重定向的過程中,把數據保存到request中(因為發送第二個request請求時,第一個的request域會失效)
d) 重定向是在瀏覽器的跳轉,瀏覽器知情
?
轉發和重定向的區別:
轉發是在服務器端的跳轉,就是瀏覽器向服務器發送一個請求,服務器直接將請求相關的參數的信息原封不動的傳遞到該服務器的其他jsp或servlet去處理。而重定向是在瀏覽器的跳轉,服務器會返回給瀏覽器一個響應報頭和新的URL地址,原來的參數或者其他的一些信息,如果服務器端沒有特別處理就不存在了,瀏覽器會訪問新的URL所指向的servlet 或 jsp。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。