① java中轉發和重定向的區別
轉發與重定向的區別如下:
轉發是伺服器行為,重定向是客戶端行為
1.轉發在伺服器端完成的;重定向是在客戶端完成的
2.轉發的速度快;重定向速度慢
3.轉發的是同一次請求;重定向是兩次不同請求
4.轉發不會執行轉發後的代碼;重定向會執行重定向之後的代碼
5.轉發地址欄沒有變化;重定向地址欄有變化
6.轉發必須是在同一台伺服器下完成;重定向可以在不同的伺服器下完成
在servlet中調用轉發、重定向的語句如下:
request.getRequestDispatcher("new.jsp").forward(request,
response);//轉發到new.jsp
response.sendRedirect("new.jsp");//重定向到new.jsp
轉發過程:客戶瀏覽器發送http請求,web伺服器接受此請求,調用內部的一個方法在容器內部完成請求處理和轉發動作,將目標資源發送給客戶;在這里,轉發的路徑必須是同一個web容器下的url,其不能轉向到其他的web路徑上去,中間傳遞的是自己的容器內的request。在客戶瀏覽器路徑欄顯示的仍然是其第一次訪問的路徑,也就是說客戶是感覺不到伺服器做了轉發的。轉發行為是瀏覽器只做了一次訪問請求。
重定向過程:客戶瀏覽器發送http請求,web伺服器接受後發送302狀態碼響應及對應新的location給客戶瀏覽器,客戶瀏覽器發現是302響應,則自動再發送一個新的http請求,請求url是新的location地址,伺服器根據此請求尋找資源並發送給客戶。在這里location可以重定向到任意URL,既然是瀏覽器重新發出了請求,則就沒有什麼request傳遞的概念了。在客戶瀏覽器路徑欄顯示的是其重定向的路徑,客戶可以觀察到地址的變化的。重定向行為是瀏覽器做了至少兩次的訪問請求的。
重定向,其實是兩次request
第一次,客戶端request
A,伺服器響應,並response回來,告訴瀏覽器,你應該去B。這個時候IE可以看到地址變了,而且歷史的回退按鈕也亮了。重定向可以訪問自己web應用以外的資源。在重定向的過程中,傳輸的信息會被丟失。
② JAVA里重定向,轉發,轉向有什麼區別
java 重定向和轉發的區別
重定向和轉發有一個重要的不同:當使用轉發時,JSP容器將使用一個內部的方法來調用目標頁面,新的頁面繼續處理同一個請求,而瀏覽器將不會知道這個過程。 與之相反,重定向方式的含義是第一個頁面通知瀏覽器發送一個新的頁面請求。因為,當你使用重定向時,瀏覽器中所顯示的URL會變成新頁面的URL, 而當使用轉發時,該URL會保持不變。重定向的速度比轉發慢,因為瀏覽器還得發出一個新的請求。同時,由於重定向方式產生了一個新的請求,所以經過一次重 定向後,request內的對象將無法使用。
轉發和重定向的區別
不要僅僅為了把變數傳到下一個頁面而使用session作用域,那會無故增大變數的作用域,轉發也許可以幫助你解決這個問題。
重定向:以前的request中存放的變數全部失效,並進入一個新的request作用域。
轉發:以前的request中存放的變數不會失效,就像把兩個頁面拼到了一起。
③ Java請求和響應:實現請求重定向
請求重定向是Web伺服器在收到客戶端請求後,由於某些限制條件無法直接訪問當前請求URL所指向的Web資源,而是指定了一個新的資源路徑,引導客戶端重新發送請求的過程。
實現請求重定向的關鍵是使用HttpServletResponse介面的sendRedirect()方法。該方法生成302響應碼和location響應頭,通知客戶端重新訪問location響應頭中指定的URL。sendRedirect()方法的完整語法如下所示:
方法使用時,參數location可以為相對URL,Web伺服器會自動將相對URL轉化為絕對URL,然後生成Location頭欄位。
sendRedirect()方法的工作原理如圖10-13所示。在圖中,當客戶端訪問Servlet1時,由於Servlet1中調用了sendRedirect()方法將請求重定向到Servlet2,因此,瀏覽器收到Servlet1的響應消息後,立刻向Servlet2發送請求。Servlet2處理請求後,將響應消息回送給客戶端瀏覽器並顯示。
④ 我剛學習java 做啦一個登錄頁面 成功後會到另一個頁面 但是 不知道用轉發 還是用重定向 求指點啊
你好。
看url地址是否有變化。如果跟你請求的路徑相同,那麼說明是轉發;否則就是重定向了。重定向是多次請求,多次響應。url地址會發生變化。具體你可以看下轉發和重定向的區別。
⑤ java裡面的轉發與重定向分別是什麼,請用通俗易懂的語言回答
轉發是伺服器響應相應的其他網頁但瀏覽器地址欄不變,而重定向是伺服器告訴瀏覽器URL讓瀏覽器自己請求其他網頁,相應的地址欄改變。