成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Servlet中轉(zhuǎn)發(fā)和重定向的路徑問題以及表單提交路徑問題

explorer_ddf / 2406人閱讀

摘要:二請(qǐng)求轉(zhuǎn)發(fā)與響應(yīng)重定向中路徑參數(shù)區(qū)別假設(shè)通過請(qǐng)求到達(dá)該方法所屬的。請(qǐng)求轉(zhuǎn)發(fā)參數(shù)可以指定為相對(duì)路徑或絕對(duì)路徑。同理提交表單給路徑問題頁(yè)面提交表單給時(shí),路徑的寫法要格外注意。

轉(zhuǎn)自:http://blog.sina.com.cn/s/blo...

一、請(qǐng)求轉(zhuǎn)發(fā)與響應(yīng)重定向的種類

有兩種方式獲得Servlet轉(zhuǎn)發(fā)對(duì)象(RequestDispatcher):一種是通過HttpServletRequest的getRequestDispatcher()方法獲得,一種是通過ServletContext的getRequestDispatcher()方法獲得。

Servlet重定向的方法只有一種:HttpServletResponse的sendRedirect()方法。

這三個(gè)方法的參數(shù)都是一個(gè)URL形式的字符串,但在使用相對(duì)路徑或絕對(duì)路徑上有所區(qū)別。

二、請(qǐng)求轉(zhuǎn)發(fā)與響應(yīng)重定向中路徑參數(shù)區(qū)別

假設(shè)通過http ://localhost/myApp/cool/bar.do 請(qǐng)求到達(dá)該方法所屬的Servlet。

1、響應(yīng)重定向 ◆ HttpServletResponse.sendRedirect(String)

參數(shù)可以指定為相對(duì)路徑、絕對(duì)路徑或其它Web應(yīng)用。

i:相對(duì)路徑:response.sendRedirect("foo/stuff.do"),容器相對(duì)于原來(lái)請(qǐng)求URL的目錄加參數(shù)來(lái)生成完整的URL——http ://localhost/myApp/cool/foo/stuff.do。

ii:絕對(duì)路徑:response.sendRedirect("/foo/stuff.do"),容器相對(duì)于Web應(yīng)用本身加參數(shù)建立完整的URL,這是因?yàn)?重定向response.sendRedirect("")是服務(wù)器向客戶端發(fā)送一個(gè)請(qǐng)求頭信息,由客戶端再請(qǐng)求一次服務(wù)器,請(qǐng)求是在服務(wù)器外進(jìn)行的,即完整的url是——http ://localhost/foo/stuff.do。

iii:其它Web應(yīng)用:response.sendRedirect("http://www.xxx.com")容器直接定向到該URL。

2、請(qǐng)求轉(zhuǎn)發(fā) ◆HttpServletRequest.getRequestDispatcher(String)

參數(shù)可以指定為相對(duì)路徑或絕對(duì)路徑。

i:相對(duì)路徑情況下生成的完整URL與重定向方法相同。

ii:絕對(duì)路徑與Servlet重定向不同,容器將相對(duì)于Web應(yīng)用的根目錄加參數(shù)生成完整的URL(即“/”根路徑就是相對(duì)于虛擬路徑)這是因?yàn)檗D(zhuǎn)發(fā)是在服務(wù)器內(nèi)部進(jìn)行的,寫絕對(duì)路徑/開頭指的是當(dāng)前的Web應(yīng)用程序即:

request.getRequestDispatcher("/foo/stuff.do")生成的URL是
http ://localhost/myApp/foo/stuff.do。

3、 ◆ ServletContext.getRequestDispatcher(String)

參數(shù)只能指定為絕對(duì)路徑,生成的完整URL與HttpServletRequest.getRequestDispatcher(String)相同。
同理:
JSP 提交表單給 Servlet 路徑問題
JSP頁(yè)面提交表單給Servlet時(shí),路徑的寫法要格外注意。
例如在web.xml中注冊(cè)如下的servlet:


addStudent
org.mytest.addStudent



addStudent
/servlet/addStudent

假如說(shuō),你工程名字為HibernateApp3,JSP頁(yè)面提交表單給servlet時(shí)有兩種寫法:

1.相對(duì)路徑...
2.絕對(duì)路徑...
或者 /servlet/addStudent" method=post>...

注意:/代表根目錄,如果路徑是使用/開頭,Tomcat就是webApp那個(gè)目錄,如果你不是/開頭代表你從當(dāng)前工程的目錄開始,例如:webApp/HibernateApp3/

這一點(diǎn)非常重要,很多提交表單時(shí)發(fā)生的錯(cuò)誤都是因?yàn)樘峤宦窂匠鲥e(cuò)造成的。

附、的路徑如果是"/"開頭,則表示相對(duì)于主機(jī),如果不是則表示相對(duì)于當(dāng)前請(qǐng)求

綜上所述:這里最最關(guān)鍵的要能清楚發(fā)出請(qǐng)求目的資源的請(qǐng)求是在服務(wù)器內(nèi)部還是服務(wù)器外部:內(nèi)部時(shí),“/”就是項(xiàng)目的虛擬目錄;外部時(shí),“/”就是代表主機(jī)的根目錄

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/54611.html

相關(guān)文章

  • Servlet第四篇【request對(duì)象常用方法、應(yīng)用】

    摘要:瀏覽器的中文數(shù)據(jù)提交給服務(wù)器,以編碼對(duì)中文編碼,當(dāng)我在讀取數(shù)據(jù)的時(shí)候,拿到的當(dāng)然是亂碼。接下來(lái)使用方式傳遞中文數(shù)據(jù),把表單的方式改成即可當(dāng)我們?cè)L問的時(shí)候,又出現(xiàn)亂碼了于是我按照上面的方式,把對(duì)象設(shè)置編碼為試試結(jié)果還是亂碼。 什么是HttpServletRequest HttpServletRequest對(duì)象代表客戶端的請(qǐng)求,當(dāng)客戶端通過HTTP協(xié)議訪問服務(wù)器時(shí),HTTP請(qǐng)求頭中的所有信...

    raise_yang 評(píng)論0 收藏0
  • 轉(zhuǎn)發(fā)和重定向區(qū)別?

    實(shí)際發(fā)生位置不同,地址欄不同 轉(zhuǎn)發(fā)是發(fā)生在服務(wù)器的 轉(zhuǎn)發(fā)是由服務(wù)器進(jìn)行跳轉(zhuǎn)的,細(xì)心的朋友會(huì)發(fā)現(xiàn),在轉(zhuǎn)發(fā)的時(shí)候,瀏覽器的地址欄是沒有發(fā)生變化的,在我訪問Servlet111的時(shí)候,即使跳轉(zhuǎn)到了Servlet222的頁(yè)面,瀏覽器的地址還是Servlet111的。也就是說(shuō)瀏覽器是不知道該跳轉(zhuǎn)的動(dòng)作,轉(zhuǎn)發(fā)是對(duì)瀏覽器透明的。通過上面的轉(zhuǎn)發(fā)時(shí)序圖我們也可以發(fā)現(xiàn),實(shí)現(xiàn)轉(zhuǎn)發(fā)只是一次的http請(qǐng)求,一次轉(zhuǎn)發(fā)中...

    VEIGHTZ 評(píng)論0 收藏0
  • 超詳細(xì)Java面試題總結(jié)(四 )之JavaWeb基礎(chǔ)知識(shí)總結(jié)

    摘要:系列文章請(qǐng)查看超詳細(xì)的面試題總結(jié)一之基礎(chǔ)知識(shí)篇超詳細(xì)的面試題總結(jié)二之基礎(chǔ)知識(shí)篇超詳細(xì)的面試題總結(jié)三之集合篇常見問題下面的都是自己之前在學(xué)習(xí)的時(shí)候總結(jié)的,對(duì)于鞏固的基礎(chǔ)知識(shí)應(yīng)該有很大幫助。注意多線程的并發(fā)的讀寫類屬性會(huì)導(dǎo)致數(shù)據(jù)不同步。 系列文章請(qǐng)查看: 超詳細(xì)的Java面試題總結(jié)(一)之Java基礎(chǔ)知識(shí)篇 超詳細(xì)的Java面試題總結(jié)(二)之Java基礎(chǔ)知識(shí)篇 超詳細(xì)的Java面試題總結(jié)(...

    Leo_chen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<