要在/jsp/index.jsp文件使用圖片,如何計算相對路徑? 經過Servlet,struts轉發后又如何計算相對路徑?

目錄結構:

應用名字:Demo

demo

----webroot

----images

----go.gif

----jsp

----index.jsp " /> 美女快播第一网,日产日韩亚洲欧美综合搜索,最近日本MV字幕免费观看视频

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

JSP的相對路徑如何計算深入研究

問題描述:

要在/jsp/index.jsp文件使用圖片,如何計算相對路徑? 經過Servlet,struts轉發后又如何計算相對路徑?

目錄結構:

應用名字:Demo

demo

----webroot

----images

----go.gif

----jsp

----index.jsp

----css

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

第一種情況:直接訪問JSP文件

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

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

1、使用決對路徑

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

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

2、使用相對路徑

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

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

3、使用base href

寫<%=request.getContextPath() %>太麻煩,可以在每一個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轉發到jsp

1、使用相對路徑

URL是http://localhost/Context path/servlet_2 (轉發到/jsp/index.jsp)

錯誤:

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

正確:

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

原因:

index.jsp是保存在服務器端的/jsp/index.jsp目錄下面,但通過轉發后瀏覽器并不知道/jsp/目錄的存在,因為地址欄中沒有體現出來。所以服務器端/jsp/目錄并不會對相對路徑產生影響

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

2、使用相對路徑

URL是http://localhost/Context path/servlet/ser/ser/servlet_1 (轉發到/jsp/index.jsp)

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

錯誤:

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

正確:

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

原因:

index.jsp是保存在服務器端的/jsp/index.jsp目錄下面,但通過轉發后瀏覽器并不知道/jsp/目錄的存在,因為地址欄中沒有體現出來。所以服務器端/jsp/目錄并不會對相對路徑產生影響

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

3、使用決對路徑

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

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

總結:相對路徑是由瀏覽器通過地址欄分析出來的,與服務器端文件的存放路徑沒有關系,由其是使用Servlet,struts轉發到某jsp文件后,某jsp在服務器端存放的位置是/a/b/c/d/f/g.jsp , 但經過Servlet,struts轉發后,瀏覽器的地址欄可不一定是/a/b/c/d/f/這樣的層次。所以相對路徑的計算以瀏覽器地址欄為準。

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

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

jsp技術JSP的相對路徑如何計算深入研究,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 日韩免费精品视频 | 蝴蝶中文综合娱乐网2 | gv手机在线观看 | 日日夜夜天天操 | 两个人看的www免费高清直播 | 亚洲 欧美 国产 综合五月天 | 亚洲欧美日韩高清专区 | 麻豆AV无码蜜臀AV色哟 | 永久久久免费人妻精品 | 伊人久在线观看视频 | 国内精品乱码卡一卡2卡三卡新区 | 久久免费看少妇级毛片蜜臀 | 在线观看日韩一区 | 国产成人免费高清在线观看 | 国产成人精品自线拍 | 调教玩弄奶头乳夹开乳震动器 | 扒开她的黑森林让我添动态图 | 理论片午午伦夜理片久久 | 999久久国产精品免费人妻 | 男人边吃奶边挵进去呻吟漫画 | 啦啦啦视频在线观看WWW | 达达兔午夜一级毛片 | 亚洲 欧美 国产在线视频 | 亲胸揉胸膜下刺激视频网站APP | 午夜福利试看120秒体验区 | 久久这里有精品 | 久久99久久成人免费播放 | 国产日韩精品一区二区三区在线 | 人妻免费视频公开上传 | 总裁呻吟双腿大开男男H | 啪啪漫画无遮挡全彩h同人 啪啪激情婷婷久久婷婷色五月 | 久久亚洲精品AV成人无码 | 99在线观看免费视频 | 在线精品一卡乱码免费 | 狠狠撩色姣姣综合久久 | 久久精品美女 | 亚在线观看免费视频入口 | 亚洲精品久久久久一区二区三 | 2020亚洲国产在线播放在线 | 青青草原网址 | 精品无码日本蜜桃麻豆 |