麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JSP > 正文

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

2024-09-05 00:21:54
字體:
供稿:網(wǎng)友
要在jsp中使用圖片,如何計算相對路徑?經(jīng)過Servlet,struts轉(zhuǎn)發(fā)后又如何計算相對路徑,下面我們帶著疑問看看本文

問題描述:

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

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

應(yīng)用名字:Demo

demo

----webroot

----images

----go.gif

----jsp

----index.jsp

----css

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

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

URL是 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的值 path/再加上images/go.gif,可找到。

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

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

1、使用相對路徑

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

錯誤:

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

正確:

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

原因:

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

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

2、使用相對路徑

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

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

錯誤:

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

正確:

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

原因:

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

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

3、使用決對路徑

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

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

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

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

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

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 欧美成人午夜 | 一本色道久久综合亚洲精品图片 | 国产精品一区二区日韩 | 亚洲性视频 | 亚洲四播房 | 久久手机在线视频 | 成人不卡一区二区 | 国产欧美一区二区三区免费看 | 电影91 | 国产一区二区免费在线观看视频 | 日韩字幕在线 | av日韩一区二区三区 | 羞羞视频2023| 精品一区二区三区免费看 | 国产成人av一区 | 欧美中文字幕一区二区三区亚洲 | 国产免费久久久久 | gogo全球大胆高清人露出91 | 免费午夜视频在线观看 | 精品在线视频观看 | 亚洲福利视 | 午夜小影院| 91精品国产九九九久久久亚洲 | 91av在线免费视频 | 久久精品日韩一区 | 成人福利在线观看 | 国产成人高潮免费观看精品 | 国产成年人小视频 | 国产1区2区3区中文字幕 | 久久久久久中文字幕 | 91成人午夜性a一级毛片 | 大学生a级毛片免费视频 | 日韩视频区 | 国产精品久久久久久久四虎电影 | 成人店女老板视频在线看 | 九草网| h色网站在线观看 | 精品国产一区在线观看 | 欧美精品一区二区三区在线 | 亚洲免费在线视频 | 国产精品jk白丝蜜臀av软件 |