国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
JSP的相對(duì)路徑深入研究(多次完善)

要在/jsp/index.jsp文件使用圖片,如何計(jì)算相對(duì)路徑? 經(jīng)過(guò)Servlet,struts轉(zhuǎn)發(fā)后又如何計(jì)算相對(duì)路徑?    

     

目錄結(jié)構(gòu):

 

   

 

------------------------------------------------------------------------------

 

第一種情況 :直接訪問(wèn)JSP文件

URL是 http://localhost/Context path/jsp/index.jsp

 

要在index.jsp引用go.gif文件:

1、使用決對(duì)路徑

<img src='<%=request.getContextPath() %>/images/go.gif'/>

瀏覽器尋找方式: 域名+/Context path/images/go.gif   ,可找到。

 

  

2、使用相對(duì)路徑

<img src='../images/go.gif'/>

瀏覽器尋找方式:通過(guò)地址欄分析,index.jsp所在目錄(jsp)的上一層目錄(WebRoot)下的images/go.gif文件 。

 

 

3、使用base href

寫(xiě)<%=request.getContextPath() %>太麻煩,可以在每一個(gè)jsp文件頂部加入以下代碼

<% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <base href="<%=basePath%>">

 

 

 <img src='images/go.gif'/>

瀏覽器尋找方式: basePath的值http://localhost/Context path/再加上images/go.gif,可找到。

 

 

------------------------------------------------------------------------------


第二種情況: servlet轉(zhuǎn)發(fā)到j(luò)sp

 

1、使用相對(duì)路徑 

URL是http://localhost/Context path/servlet_2   (轉(zhuǎn)發(fā)到/jsp/index.jsp)

 

錯(cuò)誤:

根據(jù)/jsp/index.jsp路徑計(jì)算,得到 <img src='../images/go.gif'/>

 

 

正確:

<img src='images/go.gif'/>

 

原因:

index.jsp是保存在服務(wù)器端的/jsp/index.jsp目錄下面,但通過(guò)轉(zhuǎn)發(fā)后瀏覽器并不知道/jsp/目錄的存在,因?yàn)榈刂窓谥袥](méi)有體現(xiàn)出來(lái)。所以服務(wù)器端/jsp/目錄并不會(huì)對(duì)相對(duì)路徑產(chǎn)生影響

瀏覽器尋找方式:通過(guò)地址欄分析http://localhost/Context path/servlet_2 ,相對(duì)于servlet_2所在目錄(/)下面找到images/go.gif文件

 

 

2、使用相對(duì)路徑

URL是http://localhost/Context path/servlet/ser/ser/servlet_1 (轉(zhuǎn)發(fā)到/jsp/index.jsp)

 

“/servlet/ser/ser/servlet_1 是在web.xml文件配置的

 

錯(cuò)誤:

根據(jù)/jsp/index.jsp路徑計(jì)算,得到 <img src='../images/go.gif'/>

 

正確: 

<img src='../../../images/go.gif'/>

 

原因:

index.jsp是保存在服務(wù)器端的/jsp/index.jsp目錄下面,但通過(guò)轉(zhuǎn)發(fā)后瀏覽器并不知道/jsp/目錄的存在,因?yàn)榈刂窓谥袥](méi)有體現(xiàn)出來(lái)。所以服務(wù)器端/jsp/目錄并不會(huì)對(duì)相對(duì)路徑產(chǎn)生影響

瀏覽器尋找方式:通過(guò)地址欄分析http://localhost/Context path/servlet/ser/ser/servlet_1,相對(duì)于servlet_1所在目錄(ser)的上一層目錄的上一層目錄的上一層目錄(/)下的images/go.gif文件

 

 

 

 

3、使用決對(duì)路徑

<img src='<%=request.getContextPath() %>/images/go.gif'/>

 

 

------------------------------------------------------------------------------

 

總結(jié):相對(duì)路徑是由瀏覽器通過(guò)地址欄分析出來(lái)的,與服務(wù)器端文件的存放路徑?jīng)]有關(guān)系,由其是使用Servlet,struts轉(zhuǎn)發(fā)到某jsp文件后,某jsp在服務(wù)器端存放的位置是/a/b/c/d/f/g.jsp , 但經(jīng)過(guò)Servlet,struts轉(zhuǎn)發(fā)后,瀏覽器的地址欄可不一定是/a/b/c/d/f/這樣的層次。所以相對(duì)路徑的計(jì)算以瀏覽器地址欄為準(zhǔn)。原創(chuàng)地址:http://elf8848.javaeye.com/

 

 

 

struts2中可以使用命名空間,來(lái)保證瀏覽器地址欄中的目錄層次與服務(wù)器端目錄層次的一致性,這樣程序員通過(guò)服務(wù)器端的目錄層次計(jì)算相對(duì)路徑,在瀏覽器中也是正常的。

但我們理解了原理,就算不使用命名空間,自己也有強(qiáng)大的控制力。

 

轉(zhuǎn)載入注明出處:JAVA應(yīng)用與開(kāi)發(fā)辦公室 http://elf8848.javaeye.com/

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Servlet規(guī)范之URL映射
Servlet/JSP深入詳解:基于Tomcat的Web開(kāi)發(fā)--第三章
Tomcat介紹
在JavaEE版本Eclipse中配置與使用Tomcat
JSP、Servlet中的相對(duì)路徑和絕對(duì)路徑
JR 精品文章
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服