淺談一下forward和redirect的區(qū)別
1.forward 和redirect
forward又叫轉發(fā),表示轉發(fā),當請求來到時,可以將請求轉發(fā)到其他的指定服務,用戶端不知曉。
redirect又叫重定向,表示轉發(fā),當請求發(fā)給A服務時,服務A返回重定向給客戶端,客戶端再去請求B服務。
2.使用forward注意事項
1.轉發(fā)和被轉發(fā)的請求類型必須一致,即全是GET或者POST
2.轉發(fā)者方法不能被標識位@RestController或者@ResponseBody
3.使用redirect注意事項
1.redirect不支持post請求
2.redirect需要攜帶請求參數(shù),需要在url地址中進行編碼防止中文亂碼。
4.兩者的區(qū)別
1.從地址欄顯示來說:
?forword是服務器內(nèi)部的重定向,服務器直接訪問目標地址的 url網(wǎng)址,把里面的東西讀取出來,但是客戶端 并不知道,因此用forward的話,客戶端瀏覽器的網(wǎng)址是不會發(fā)生變化的。
?redirect是服務器根據(jù)邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求那個地址,所以地址欄顯示的是新的地址。
2.從數(shù)據(jù)共享來說:
?由于在整個定向的過程中用的是同一個request,因此forward會將request的信息帶到被重定向的jsp或者 servlet中使用。即可以共享數(shù)據(jù)
?redirect不能共享
3.從運用的地方來說
?forword 一般用于用戶登錄的時候,根據(jù)角色轉發(fā)到相應的模塊
?redirect一般用于用戶注銷登錄時返回主頁面或者跳轉到 其他網(wǎng)站
4.從效率來說:
?forword效率高,而redirect效率低
5.從本質來說:
?forword轉發(fā)是服務器上的行為,而redirect重定向是客戶端的行為
6.從請求的次數(shù)來說:
?forword只有一次請求;而redirect有兩次請求
到此這篇關于淺談一下forward和redirect的區(qū)別的文章就介紹到這了,更多相關forward和redirect的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JavaScript高級程序設計(第3版)學習筆記5 js語句
下面采用類似的形式整理一下語句的相關知識,重點突出一些ECMAScript中比較特別和個人認為比較有意思的地方,同樣,沒有強調(diào)的但比較基礎的語句并非不重要,而是我認為你已經(jīng)熟悉2012-10-10javascript學習筆記(十四) window對象使用介紹
javascript學習筆記之window對象使用介紹,需要的朋友可以參考下2012-06-06