中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

sendredirect()與forward()函數在java中的區別有哪些

發布時間:2020-11-30 17:10:30 來源:億速云 閱讀:262 作者:Leah 欄目:編程語言

sendredirect()與forward()函數在java中的區別有哪些?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

 HttpServletResponse.sendRedirect與RequestDispatcher.forward方法都可以實現獲取相應URL資源。

sendRedirect實現請求重定向,forward實現的是請求轉發。

在web服務器內部的處理機制也是不一樣的。 

1. 跳轉方式

 運用forward方法只能重定向到同一個Web應用程序中的一個資源。而sendRedirect方法可以讓你重定向到任何URL。 

 表單form的action= "/uu ";sendRedirect( "/uu ");表示相對于服務器根路徑。

 如http://localhost:8080/Test應用(則提交至http://localhost:8080/uu); 

 Forward代碼中的 "/uu "則代表相對與WEB應用的路徑。如http://localhost:8080/Test應用(則提交至http://localhost:8080/Test/uu); 

2.forward重定向后,瀏覽器url地址不變,sendRedirect轉發后,瀏覽器url地址變為目的url地址。

forward()無法重定向至有frame的jsp文件,可以重定向至有frame的html文件, 同時forward()無法在后面帶參數傳遞,

比如servlet?name=frank,這樣不行,可以程序內通過response.setAttribute( "name ",name)來傳至下一個頁面.  

3. 使用forward重定向的過程,是瀏覽器先向目的Servlet發送一次Request請求,然后再服務器端由Servlet再將請求發送到目的url,再由服務器端Servlet返回Response到瀏覽器端。瀏覽器和服務器一次請求響應。 

使用sendRedirect轉發的過程,瀏覽器先向目的Servlet發送一次請求,Servlet看到sendRedirect將目的url返回到瀏覽器,瀏覽器再去請求目的url,目的url再返回response到瀏覽器。瀏覽器和服務器兩次請求響應。

4. forward方法的調用者與被調用者之間共享Request和Response

sendRedirect方法由于兩次瀏覽器服務器請求,所以有兩個Request和Response。 

如果使用request.setAttribute傳遞一些屬性就需要用forward,如果想要跳轉到別的應用的資源,就需要用sendRedirect。 

5.無論是forward方法還是sendRedirect方法調用前面都不能有PrintWriter輸出到客戶端。 

forward方法報錯: Java.lang.IllegalStateException: Cannot forward after response has been committed 

sendRedirect報錯:java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大兴区| 宁阳县| 广宗县| 嘉峪关市| 涞水县| 吉林省| 大名县| 巍山| 兴国县| 天津市| 永定县| 阿勒泰市| 通山县| 务川| 霍林郭勒市| 且末县| 扬中市| 台江县| 德令哈市| 调兵山市| 石狮市| 定南县| 从化市| 太和县| 武冈市| 太仆寺旗| 怀仁县| 阜新| 佛冈县| 砀山县| 二手房| 黔江区| 涡阳县| 宣威市| 平江县| 乌兰察布市| 柏乡县| 惠州市| 城步| 永泰县| 河池市|