亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

node.js forward和redirect的區別

node.js forward和redirect的區別

長風秋雁 2019-05-13 13:08:45
node.js forward和redirect的區別
查看完整描述

3 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

戶向服務器發送了一次HTTP請求,該請求肯能會經過多個信息資源處理以后才返回給用戶,各個信息資源使用請求轉發機制相互轉發請求,但是用戶是感覺不到請求轉發的。根據轉發方式的不同,可以區分為直接請求轉發(Forward)和間接請求轉發(Redirect)兩種有何區別呢?

1.從地址欄顯示來說
forward是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然后把這些內容再發給瀏覽器.瀏覽器根本不知道服務器發送的內容從哪里來的,所以它的地址欄還是原來的地址.
redirect是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址.所以地址欄顯示的是新的URL.

2.從數據共享來說
forward:轉發頁面和轉發到的頁面可以共享request里面的數據.
redirect:不能共享數據.

3.從運用地方來說
forward:一般用于用戶登陸的時候,根據角色轉發到相應的模塊.
redirect:一般用于用戶注銷登陸時返回主頁面和跳轉到其它的網站等.

4.從效率來說
forward:高.
redirect:低.





查看完整回答
反對 回復 2019-05-14
?
萬千封印

TA貢獻1891條經驗 獲得超3個贊


forward是容器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向后的地址,他是不會改變Request的值,如果你需要在下一個頁面中能從中獲取新的信息的話,你可以Request.setAttribute()來放置一些標志,這樣從下一個頁面中獲取。

redirect是完全的跳轉,瀏覽器將會得到跳轉的地址,并重新發送請求鏈接。這樣,從瀏覽器的地址欄中可以看到跳轉后的鏈接地址。所以,forward更加高效,在forward可以滿足需要時,盡量使用Request Dispatcher.forward()方法,并且,這樣也有助于隱藏實際的鏈接。在有些情況下,比如,需要跳轉到一個其它服務器上的資源,則必須使用 HttpServletResponse.sendRequest()方法。



查看完整回答
反對 回復 2019-05-14
?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

在Servlet中兩種實現:
forward方式:request.getRequestDispatcher("/somePage.jsp").forward(request, response);
redirect方式:response.sendRedirect("/somePage.jsp");

forward是服務器內部重定向,程序收到請求后重新定向到另一個程序,客戶機并不知道;redirect則是服務器收到請求后發送一個狀態頭給客戶,客戶將再請求一次,這里多了兩次網絡通信的來往。當然forward也有缺點,就是forward的頁面的路徑如果是相對路徑就會有些問題了。

forward 會將 request state , bean 等等信息帶往下一個 jsp
redirect 是送到 client 端后再一次 request , 所以資料不被保留.
使用 forward 你就可以用 getAttribute() 來取的前一個 jsp 所放入的 bean 等等資料



查看完整回答
反對 回復 2019-05-14
  • 3 回答
  • 0 關注
  • 1132 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號