當前位置:首頁 » 網頁前端 » 前端轉發和重定向
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

前端轉發和重定向

發布時間: 2022-04-30 10:12:55

『壹』 重定向和轉發有什麼區別

重定向和轉發有一個重要的不同:當使用轉發時,JSP容器將使用一個內部的方法來調用目標頁面,新的頁面繼續處理同一個請求,而瀏覽器將不會知道這個過程。 與之相反,重定向方式的含義是第一個頁面通知瀏覽器發送一個新的頁面請求。因為,當你使用重定向時,瀏覽器中所顯示的URL會變成新頁面的URL, 而當使用轉發時,該URL會保持不變。重定向的速度比轉發慢,因為瀏覽器還得發出一個新的請求。同時,由於重定向方式產生了一個新的請求,所以經過一次重定向後,request內的對象將無法使用。
怎麼選擇是重定向還是轉發呢?通常情況下轉發更快,而且能保持request內的對象,所以他是第一選擇。但是由於在轉發之後,瀏覽器中URL仍然指向開始頁面,此時如果重載當前頁面,開始頁面將會被重新調用。如果你不想看到這樣的情況,則選擇轉發。

轉發和重定向的區別
不要僅僅為了把變數傳到下一個頁面而使用session作用域,那會無故增大變數的作用域,轉發也許可以幫助你解決這個問題。
重定向:以前的request中存放的變數全部失效,並進入一個新的request作用域。
轉發:以前的request中存放的變數不會失效,就像把兩個頁面拼到了一起。

『貳』 JSP中轉發和重定向的區別

重定向和轉發有一個重要的不同:當使用轉發時,JSP容器將使用一個內部的方法來調用目標頁面,新的頁面繼續處理同一個請求,而瀏覽器將不會知道這個過程。 與之相反,重定向方式的含義是第一個頁面通知瀏覽器發送一個新的頁面請求。因為,當你使用重定向時,瀏覽器中所顯示的URL會變成新頁面的URL, 而當使用轉發時,該URL會保持不變。重定向的速度比轉發慢,因為瀏覽器還得發出一個新的請求。同時,由於重定向方式產生了一個新的請求,所以經過一次重定向後,request內的對象將無法使用。
怎麼選擇是重定向還是轉發呢?通常情況下轉發更快,而且能保持request內的對象,所以他是第一選擇。但是由於在轉發之後,瀏覽器中URL仍然指向開始頁面,此時如果重載當前頁面,開始頁面將會被重新調用。如果你不想看到這樣的情況,則選擇轉發。

綜上,轉發和重定向的區別 :
不要僅僅為了把變數傳到下一個頁面而使用session作用域,那會無故增大變數的作用域,轉發也許可以幫助你解決這個問題。
重定向:以前的request中存放的變數全部失效,並進入一個新的request作用域。
轉發:以前的request中存放的變數不會失效,就像把兩個頁面拼到了一起。

『叄』 重定向和內部轉發的區別

重定向和轉發的區別:
1、作用方式不同,當使用轉發時,JSP容器將使用一個內部的方法來調用目標頁面,新的頁面繼續處理同一個請求,而瀏覽器將不會知道這個過程。 與之相反,重定向方式的含義是第一個頁面通知瀏覽器發送一個新的頁面請求;
2、頁面顯示不同,當使用重定向時,瀏覽器中所顯示的URL會變成新頁面的URL,,而當使用轉發時,該URL會保持不變;
3、速度不同,重定向的速度比轉發慢,因為瀏覽器還得發出一個新的請求;
4、作用對象效果不同,由於重定向方式產生了一個新的請求,所以經過一次重定向後,request內的對象將無法使用。通常情況下轉發更快,而且能保持request內的對象;
5、頁面轉換不同,轉發之後,瀏覽器中URL仍然指向開始頁面,此時如果重載當前頁面,開始頁面將會被重新調用。

『肆』 誰能幫我解釋一下什麼是jsp中的轉發與重定向 他們之間具體的區別是什麼呢

他們的調用分別如下例:
request.getRequestDispatcher("new.jsp").forward(request, response);//轉發到new.jsp
response.sendRedirect("new.jsp");//重定向到new.jsp

在jsp頁面中你也會看到通過下面的方式實現轉發:

<jsp:forward page="apage.jsp" />

重定向過程:客戶瀏覽器發送http請求----》web伺服器接受後發送302響應要求客戶瀏覽器發送一個新的http請求----》客戶端瀏覽器接受此響應後在發送一個新的http請求到伺服器----》伺服器根據此請求尋找資源並發送給客戶,它可以重定向到任意URL,不能共享request范圍內的數據。

轉發過程:客戶瀏覽器發送http請求----》web伺服器接受此請求後調用內部的一個方法在容器內部完成請求處理和轉發動作----》將目標資源發送給客戶,它只能在同一個web應用中使用,可以共享request范圍內的數據。

怎麼選擇是重定向還是轉發呢?通常情況下轉發更快,而且能保持request內的對象,所以他是第一選擇。但是由於在轉發之後,瀏覽器中URL仍然指向開始頁面,此時如果重載當前頁面,開始頁面將會被重新調用。如果你不想看到這樣的情況,則選擇轉發。

『伍』 請問重定向與請求轉發有什麼區別

一、目標不同

轉發是伺服器行為,重定向是客戶端行為 。

二、請求次數不同

1、重定向是兩次request 。

第一次,客戶端request一個網址,伺服器響應,並response回來,告訴瀏覽器,你應該去別一個網址。

2、請求轉發只有一次請求

三、網址定位不同

重定向的網址可以是任何網址,請求轉發只能是指定網址。

四、導致的結果不同

不做重定向,則用戶收藏夾或搜索引擎資料庫中舊地址只能讓訪問客戶得到一個404頁面錯誤信息,訪問流量白白喪失;再者某些注冊了多個域名的網站,也需要通過重定向讓訪問這些域名的用戶自動跳轉到主站點等。

1、網站調整(如改變網頁目錄結構);

2、網頁被移到一個新地址;

3、網頁擴展名改變(如應用需要把.php改成.Html或.shtml)。

『陸』 java開發中,轉發和重定向什麼區別

重定向和轉發有一個重要的不同:當使用轉發時,JSP容器將使用一個內部的方法來調用目標頁面,新的頁面繼續處理同一個請求,而瀏覽器將不會知道這個過程。 與之相反,重定向方式的含義是第一個頁面通知瀏覽器發送一個新的頁面請求。因為,當你使用重定向時,瀏覽器中所顯示的URL會變成新頁面的URL, 而當使用轉發時,該URL會保持不變。重定向的速度比轉發慢,因為瀏覽器還得發出一個新的請求。同時,由於重定向方式產生了一個新的請求,所以經過一次重定向後,request內的對象將無法使用。
怎麼選擇是重定向還是轉發呢?通常情況下轉發更快,而且能保持request內的對象,所以他是第一選擇。但是由於在轉發之後,瀏覽器中URL仍然指向開始頁面,此時如果重載當前頁面,開始頁面將會被重新調用。如果你不想看到這樣的情況,則選擇轉發。
轉發和重定向的區別
不要僅僅為了把變數傳到下一個頁面而使用session作用域,那會無故增大變數的作用域,轉發也許可以幫助你解決這個問題。
重定向:以前的request中存放的變數全部失效,並進入一個新的request作用域。
轉發:以前的request中存放的變數不會失效,就像把兩個頁面拼到了一起。

『柒』 Javaweb的跳轉問題

通俗來說,form表單是寫在前端頁面(如html、jsp)上的,<form>有一個『action』的參數,這里需要填寫目標地址,如果不填寫的話客戶端是不知道往哪裡發送信息的,因此form是由客戶端主動發送給伺服器(具體的地址就是action索要填的值)的。這屬於客戶端向伺服器發起請求,代碼表現為:

<form
action='10086.jsp' method='get' >

…………

</form>

就像你打10086,你問問題(提交表單),客服(伺服器)會根據你的問題(form)反饋答案。同理,正常來說,後台接收到前端發來的信息後,會進行一系列操作,最後發送結果回去。

====分割線====

而轉發和重定向的代碼是寫在後台代碼里的,因為並不是所有的業務都由同一個後台頁面處理(例如統一管理平台),前端form填的是頁面A,但實際上頁面A在接收到form後並不進行處理,而是通過轉發或者重定向的方式,發送給頁面B,頁面B處理後會把結果發送給A,然後A再反饋給前端。因此,這屬於伺服器向伺服器發起請求

轉發的代碼是request.getrequestdispatcher (10086-2.jsp).forward(request,response),特點是url不會變,客戶端無法判斷是form表單的後台頁面在處理還是別的頁面在處理(你在瀏覽器上是無法知道10086-2.jsp這個頁面的存在)。就像10086客戶有時候會讓你稍等,等待期間你是不知道他是在敲電腦還是找外援尋求答案。

重定向的代碼是response.sendRedirect("10086-2.jsp"),特點是url會變。瀏覽器的地址欄會明顯看到地址發生改變。就像10086客服告訴你該問題不是他負責的范圍,然後幫你轉接到其他相應的客戶。

至於怎麼判斷啥時候使用轉發,啥時候使用重定向,還請理解jsp的四大作用域之後再回頭思考。

『捌』 「請求轉發」和「重定向」之間有什麼區別

與之相反,重定向方式的含義是第一個頁面通知瀏覽器發送一個新的頁面請求。因為,當你使用重定向時,瀏覽器中所顯示的URL會變成新頁面的URL, 而當使用轉發時,該URL會保持不變。重定向的速度比轉發慢,因為瀏覽器還得發出一個新的請求。同時,由於重定向方式產生了一個新的請求,所以經過一次重定向後,request內的對象將無法使用。 怎麼選擇是重定向還是轉發呢?通常情況下轉發更快,而且能保持request內的對象,所以他是第一選擇。但是由於在轉發之後,瀏覽器中URL仍然指向開始頁面,此時如果重載當前頁面,開始頁面將會被重新調用。如果你不想看到這樣的情況,則選擇轉發。
轉發和重定向的區別
不要僅僅為了把變數傳到下一個頁面而使用session作用域,那會無故增大變數的作用域,轉發也許可以幫助你解決這個問題。
重定向:以前的request中存放的變數全部失效,並進入一個新的request作用域。
轉發:以前的request中存放的變數不會失效,就像把兩個頁面拼到了一起。 詳細說法:讓瀏覽器獲得另外一個URL所指向的資源可以使用請求轉發(RequestDispatcher.forward)或則是重定向技術(HttpServletResponse.sendRedirect),但是兩者的內部機制有很大的區別: 1 請求轉發只能將請求轉發給同一個WEB應用中的組件,而重定向還可以重新定向到同一站點不同應用程序中的資源,甚至可以定向到一絕對的URL。
2 重定向可以看見目標頁面的URL,轉發只能看見第一次訪問的頁面URL,以後的工作都是有伺服器來做的。
3 請求響應調用者和被調用者之間共享相同的request對象和response對象,重定向調用者和被調用者屬於兩個獨立訪問請求和響應過程。
4 重定向跳轉後必須加上return,要不然頁面雖然跳轉了,但是還會執行跳轉後面的語句,轉發是執行了跳轉頁面,下面的代碼就不會在執行了。
假設你去辦理某個執照:
重定向:你先去了A局,A局的人說:「這個事情不歸我們管,去B局」,然後,你就從A退了出來,自己乘車去了B局。

『玖』 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應用以外的資源。在重定向的過程中,傳輸的信息會被丟失。

『拾』 、重定向與轉發有何區別它們分別在什麼情況下使用

重定向用在在當前網站的情況下,轉發用在跳轉到另外網站的情況下,兩者區別如下:

一、方式不同

1、重定向:就是通過各種方法將各種網路請求重新定個方向轉到其它位置。

2、轉發:是通過伺服器的特殊設置,將訪問當前域名的用戶引導到您指定的另一個網路地址。

二、特點不同

1、重定向:不做重定向,則用戶收藏夾或搜索引擎資料庫中舊地址只能讓訪問客戶得到一個404頁面錯誤信息,訪問流量白白喪失;

2、轉發:隱含轉發就是指當前域名轉發後,仍然顯示當前域名,而非隱含轉發者指當前域名轉發後,顯示被轉發的地址。


三、用處不同

1、重定向:注冊了多個域名的網站,也需要通過重定向讓訪問這些域名的用戶自動跳轉到主站點等。

2、轉發:域名指向可能這個站點原有的域名或網址是比較復雜難記的。