日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

JSP、Servlet中的相對(duì)路徑和絕對(duì)路徑_JSP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:用 jspinclude 控制動(dòng)態(tài)內(nèi)容
在新的 JSP 最佳實(shí)踐系列的前一篇文章中,您了解了如何使用 JSP include 偽指令將諸如頁(yè)眉、頁(yè)腳和導(dǎo)航組件之類的靜態(tài)內(nèi)容包含到 Web 頁(yè)面中。和服務(wù)器端包含一樣,JSP include 偽指令允

JSP和Servlet中的絕對(duì)路徑和相對(duì)路徑問題困擾了我好幾天,經(jīng)過努力之后將其部分心得和大家共享。

前提:假設(shè)你的Http地址為http://192.168.0.1/你的web應(yīng)用為webapp,那么你的web應(yīng)用URL為http://192.168.0.1/webapp/

web應(yīng)用的目錄結(jié)構(gòu):

webapp/

web-inf/

classes/

lib/

web.xml

handleservlet

/handleservlet此映射是相對(duì)于當(dāng)前web應(yīng)用的

user/

a.jsp

b.jsp

images/

css/

js/

所有相對(duì)路徑都是由“/”開頭的。如:/image/a.gif,/user/main.jsp,大家知道在html中的相對(duì)路徑是這樣的:

有個(gè)html文件:a.html,其中有,其中href屬性表示引用的css文件的路徑。

one.css:表示one.css和a.hmtl處于同一個(gè)目錄

user/one.css:表示one.css處于a.html所在目錄的子目錄user中。

../one.css:表示one.css位于a.hmtl上一級(jí)目錄下,

../../one.css:表示one.css位于a.hmtl上一級(jí)目錄的上一級(jí)目錄下,

./:表示和a.hmtl同一目錄

我們稱上述相對(duì)路徑為html相對(duì)路徑

1、服務(wù)器端的地址

服務(wù)器端的相對(duì)地址指的是相對(duì)于你的web應(yīng)用的地址,這個(gè)地址是在服務(wù)器端解析的(不同于html和javascript中的相對(duì)地址,他們是由客戶端瀏覽器解析的)也就是說這時(shí)候在jsp和servlet中的相對(duì)地址應(yīng)該是相對(duì)于你的web應(yīng)用,即相對(duì)于http://192.168.0.1/webapp/的。

其用到的地方有:

forwarder:servlet中的request.getRequestDispatcher(address);這個(gè)address是在服務(wù)器端解析的,所以,你要forwarder到a.jsp應(yīng)該這么寫:request.getRequestDispatcher(“/user/a.jsp”)這個(gè)/相對(duì)于當(dāng)前的web應(yīng)用webapp,其絕對(duì)地址就是:http://192.168.0.1/webapp/user/a.jsp。

sendRedirect:在jsp中

2、客戶端的地址

所有的html中的相對(duì)地址都是相對(duì)于http://192.168.0.1/的,而不是http://192.168.0.1/webapp/的。

Html中的form表單的action屬性的地址應(yīng)該是相對(duì)于http://192.168.0.1/的,所以,如果提交到a.jsp為:action=”/webapp/user/a.jsp”;提交到servlet為action=”/webapp/handleservlet”

javascript也是在客戶端解析的,所以其相對(duì)路徑和form表單一樣。

3、站點(diǎn)根目錄和css路徑問題

我們稱類似這樣的相對(duì)路徑/webapp/….為相對(duì)于站點(diǎn)根目錄的相對(duì)路徑。

當(dāng)在jsp中引入css時(shí),如果其相對(duì)路徑相對(duì)于當(dāng)前jsp文件的,而在一個(gè)和這個(gè)jsp的路徑不一樣的servlet中forwarder這個(gè)jsp時(shí),就會(huì)發(fā)現(xiàn)這個(gè)css樣式根本沒有起作用。這是因?yàn)樵趕ervlet中轉(zhuǎn)發(fā)時(shí)css的路徑就是相對(duì)于這個(gè)servlet的相對(duì)路徑而非jsp的路徑了。所以這時(shí)候不能在jsp中用這樣的路徑:或者類似href="one.css"和../../one.css的html相對(duì)路徑是相對(duì)于引用這個(gè)css的文件的相對(duì)路徑。而在servlet中轉(zhuǎn)發(fā)時(shí)就是相對(duì)于這個(gè)servlet的相對(duì)路徑了,因?yàn)閖sp路徑和servlet路徑是不一樣的,所以這樣的引用肯定是出錯(cuò)的。

所以這個(gè)時(shí)候,要用站點(diǎn)根目錄,就是相對(duì)于http://192.168.0.1/的目錄,以“/”開頭。

因此上述錯(cuò)誤應(yīng)更正為href=”/webapp/one.css”類似的站點(diǎn)根目錄的相對(duì)目錄。這樣在servlet轉(zhuǎn)發(fā)后和jsp中都是相對(duì)于站點(diǎn)根目錄的相對(duì)路徑,就能正確使用所定義的css樣式了。

分享:JSP和Servlet對(duì)中文的處理過程
世界上的各地區(qū)都有本地的語(yǔ)言。地區(qū)差異直接導(dǎo)致了語(yǔ)言環(huán)境的差異。在開發(fā)一個(gè)國(guó)際化程序的過程中,處理語(yǔ)言問題就顯得很重要了。 這是一個(gè)世界范圍內(nèi)都存在的問題,所以,Java提供

來源:模板無憂//所屬分類:JSP教程/更新時(shí)間:2008-08-22
相關(guān)JSP教程