<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    向東博客

    非澹泊無(wú)以明志,非寧?kù)o無(wú)以致遠(yuǎn).
    posts - 12,  comments - 19,  trackbacks - 0

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

    ?????? 前提:假設(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

    ??????????????????????????? ? <servlet-mapping>

    ??? ?????????????????????????? <servlet-name>handleservlet</servlet-name>

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

    ? ??????????????????????? ???</servlet-mapping>

    ????????????? user/

    a.jsp

    b.jsp

    ????????????? images/

    ????????????? css/

    ????????????? js/

    ?????????????

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

    ?????? 有個(gè) html 文件: a.html ,其中有 <link href="one.css" rel="stylesheet" type="text/css"> ,其中 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ì)地址,他們是由客戶端瀏覽器解析的)也就是說(shuō)這時(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 <%response.sendRedirect("/rtccp/user/a.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 路徑問(wèn)題

    我們稱類似這樣的相對(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 樣式根本沒(méi)有起作用。這是因?yàn)樵?/span> servlet 中轉(zhuǎn)發(fā)時(shí) css 的路徑就是相對(duì)于這個(gè) servlet 的相對(duì)路徑而非 jsp 的路徑了。所以這時(shí)候不能在 jsp 中用這樣的路徑: <link href="one.css" rel="stylesheet" type="text/css"> 或者 <link href="../../one.css" rel="stylesheet" type="text/css"> 類似 href="one.css" ../../one.css html 相對(duì)路徑是相對(duì)于引用這個(gè) css 的文件的相對(duì)路徑。而在 servlet 中轉(zhuǎn)發(fā)時(shí)就是相對(duì)于這個(gè) servlet 的相對(duì)路徑了,因?yàn)?/span> jsp 路徑和 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 樣式了。

    ?

    說(shuō)了這么多,不知道你了解沒(méi),有什么問(wèn)題留言,大家一塊交流!

    posted on 2006-10-10 08:57 向東博客 閱讀(3792) 評(píng)論(2)  編輯  收藏 所屬分類: 開發(fā)技巧

    FeedBack:
    # re: JSP、Servlet中的相對(duì)路徑和絕對(duì)路徑
    2007-02-23 10:47 | yangdamao
    路徑問(wèn)題把我給繁死了.
    非常感謝,說(shuō)的通俗易懂!
    你去當(dāng)老師應(yīng)該是一個(gè)很不錯(cuò)的老師!  回復(fù)  更多評(píng)論
      
    # re: JSP、Servlet中的相對(duì)路徑和絕對(duì)路徑[未登錄](méi)
    2008-10-22 08:32 | jason
    以前一直搞.net,最近轉(zhuǎn)到j(luò)ava,一開始就是這個(gè)路徑問(wèn)題,昨天晚上搞了整整一個(gè)晚上,也沒(méi)弄出來(lái),今天早上簡(jiǎn)單的一看,就明白了,太感謝樓主了  回復(fù)  更多評(píng)論
      







    留言簿(3)

    我參與的團(tuán)隊(duì)

    隨筆分類

    在線文檔

    網(wǎng)站

    最新隨筆

    積分與排名

    • 積分 - 58183
    • 排名 - 893

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲天堂福利视频| 亚洲 另类 无码 在线| 亚洲福利视频一区二区三区| 亚洲中文字幕无码久久2017| 丝袜熟女国偷自产中文字幕亚洲| 亚洲精品和日本精品| www国产亚洲精品久久久| mm1313亚洲国产精品美女| 亚洲成av人片不卡无码久久| 四虎影在线永久免费观看| 亚洲va中文字幕无码| 亚洲国产日韩成人综合天堂| 中文字幕亚洲综合久久男男| 在线观看免费毛片| 性感美女视频在线观看免费精品| 免费电视剧在线观看| 国偷自产一区二区免费视频| 男人进去女人爽免费视频国产| 一级毛片aaaaaa免费看| 亚洲视频在线免费播放| 免费做爰猛烈吃奶摸视频在线观看 | 亚洲区视频在线观看| 亚洲伊人精品综合在合线| 亚洲色成人网站WWW永久四虎| 亚洲国产人成在线观看69网站| 亚洲狠狠久久综合一区77777| 亚洲成人一级电影| 欧洲亚洲国产精华液| 一个人看的www免费高清| 久久精品视频免费| 久久精品免费全国观看国产| 国产成人免费全部网站| 国产亚洲AV夜间福利香蕉149| 亚洲第一区香蕉_国产a| 亚洲精品卡2卡3卡4卡5卡区| 亚洲最大的成网4438| 亚洲一区二区三区国产精华液| 美女视频黄频a免费| 污视频在线免费观看| 成年丰满熟妇午夜免费视频| 亚洲人成网站色在线入口|