a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > JSP > 正文

jsp中redirect和forward的區別

2024-09-05 00:22:29
字體:
來源:轉載
供稿:網友

jsp中redirect和forward的區別在哪里?在網上看到一些帖子,總結了一些區別,可以從以下幾個方面來看:

1.從地址欄顯示來說

forward是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然后把這些內容

再發給瀏覽器.瀏覽器根本不知道服務器發送的內容從哪里來的,所以它的地址欄還是原來的地址.

redirect是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址.所以地址欄顯示的是新的URL.所

以redirect等于客戶端向服務器端發出兩次request,同時也接受兩次response。

2.從數據共享來說

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

redirect不僅可以重定向到當前應用程序的其他資源,還可以重定向到同一個站點上的其他應用程序中的資源,

甚至是使用絕對URL重定向到其他站點的資源.

forward,方法只能在同一個Web應用程序內的資源之間轉發請求.

forward 是服務器內部的一種操作.
redirect 是服務器通知客戶端,讓客戶端重新發起請求.

所以,你可以說 redirect 是一種間接的請求, 但是你不能說"一個請求是屬于forward還是redirect "


3.從運用地方來說

forward:一般用于用戶登陸的時候,根據角色轉發到相應的模塊.

redirect:一般用于用戶注銷登陸時返回主頁面和跳轉到其它的網站等.

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

5.jsp 語法

<jsp:forward page={"relativeurl" | "<%= expression %>"} />

或者這樣寫:

<jsp:forward page={"relativeurl" | "<%= expression %>"} >


<jsp:param name="parametername" value="{parametervalue | <%= expression %>}" />+


</jsp:forward> 

6.例子

<jsp:forward page="/servlet/login" />

<jsp:forward page="/servlet/login">

<jsp:param name="username" value="jsmith" />

</jsp:forward>

描述

<jsp:forward>標簽從一個jsp文件向另一個文件傳遞一個包含用戶請求的request對象.<jsp:forward>標簽以下的代碼,將不能執行.


你能夠向目標文件傳送參數和值,在這個例子中我們傳遞的參數名為username,值為scott,如果你使用了<jsp:param>標簽的話,目標文件必須是一個動態的文件,能夠處理參數.


如果你使用了非緩沖輸出的話,那么使用<jsp:forward>時就要小心。
如果在你使用<jsp:forward>之前,jsp文件已經有了數據,那么文件執行就會出錯.

屬性

page="{relativeurl | <%= expression %>}"
這里是一個表達式或是一個字符串用于說明你將要定向的文件或url.這個文件可以是jsp,程序段,或者其它能夠處理request對象的文件(如asp,cgi,php).

<jsp:param name="parametername" value="{parametervalue | <%= expression %>}" />+
向一個動態文件發送一個或多個參數,這個文件一定是動態文件.

如果你想傳遞多個參數,你可以在一個jsp文件中使用多個<jsp:param>。name指定參數名,value指定參數值.



<jsp:forward>例子

<%@ page contentType="text/html;charset=gb2312" %>

<html>

       <head>

              <title>test</title>

       </head>

       <body>

              <jsp:forward page="forwardTo.jsp">

                     <jsp:param name="userName" value="riso"/>

              </jsp:forward>

       </body>

</html>

forwardTo.jsp

<%@ page contentType="text/html;charset=gb2312" %>

<!--forwardTo.jsp-->

<%

       String useName=request.getParameter("userName");

       String outStr= "謝謝光臨!";

       outStr+=useName;

       out.println(outStr);

%>

redirect的例子:

譬 如:client 通過XXX/index.jsp?name=gauss&pwd=123訪問index.jsp,而index.jsp中有< jsp:forward page="login.jsp"/>,則在login.jsp中可以通過request.getParameter()得到name和pwd, 而<%response.sendRedirect("login.jsp");%>得不到。

 

 

以上摘抄自: http://blog.csdn.net/zhengcandan/article/details/3138627


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品一区二区三区四区 | 欧美国产日本精品 | 国产日韩精品一区二区 | 久久久www成人免费精品 | 日韩欧美一区二区三区免费观看 | 亚洲人免费 | 韩国精品一区 | 欧美日韩视频在线播放 | 亚洲四区 | 久久午夜电影 | 天天碰天天操 | 亚洲黄色三级 | 玖草资源| 精品中文字幕在线观看 | 欧美日韩精品综合 | 精品网站999www| 亚洲国产精品久久久久久 | 一区二区不卡 | 日韩久久精品 | 亚洲日本久久 | 精品毛片| 国产成人片 | 久久噜噜噜精品国产亚洲综合 | 日韩精品极品在线观看 | 中文字幕一区二区三区免费视频 | 欧美日韩亚洲在线 | 亚洲一区二区三区免费在线观看 | 日韩中文在线观看 | 久在草视频| 日韩 国产 在线 | aaa日本高清在线播放免费观看 | 人人干在线视频 | 精品久久久久久久久久久久久久 | 国产在线观看免费av | 久久香蕉国产 | 国产在线免费 | 国产精品久久久久久久午夜片 | 久草视频新 | 青青草久草| 极品美女av在线 | 欧日韩在线观看视频 |