Java Web开发中路径问题小结
(1)?Web開發(fā)中路徑的幾個(gè)基本概念
假設(shè)在瀏覽器中訪問了如下的頁面,如圖1所示:
圖1
Eclipse中目錄結(jié)構(gòu)如圖2所示:
圖2
那么針對(duì)這個(gè)站點(diǎn)的幾個(gè)基本概念表述如下:
1.?web站點(diǎn)的根目錄:http://localhost:8080/
2.?web應(yīng)用的的根目錄:http://localhost:8080/test/
3.同級(jí)目錄:http://localhost:8080/test/articles/article1.jsp和http://localhost:8080/test/articles/article2.jsp?就是處于同級(jí)目錄。
二.幾個(gè)路徑相關(guān)函數(shù)的返回值:
在TestURL.jsp文件中測試了三個(gè)路徑相關(guān)函數(shù):
1.?getRequestURI()
2.?getContextPath()
3.?getServletPath()
結(jié)果如圖3所示:
圖3
三.web.xml中的路徑
Servlet?映射?<url-pattern>/xx</url-pattern>?中的?“/”?代表當(dāng)前?web?應(yīng)用的根路徑。
這個(gè)只要思考一下就能得出結(jié)論:所有的web.xml文件都是描述某個(gè)web應(yīng)用的部署相關(guān)信息,所以“/”只能代表當(dāng)前?web?應(yīng)用的根路徑,而不是指向web站點(diǎn)的根目錄
四.轉(zhuǎn)發(fā)和重定向中的路徑問題
1.?如果沒有“/”,如request.getRequestDispatcher("hello.jsp ").forward(request, response)?和response.sendRedirect(" hello.jsp ")?就表示在同級(jí)目錄中尋找login.jsp文件。
2.?如果路徑中包含“/”(注意,這里的“/”是指路徑中的第一個(gè)“/”)
a,?轉(zhuǎn)發(fā)
如request.getRequestDispatcher("/hello.jsp").forward(request, response)?:代表到http://localhost:8080/test/?下目錄尋找hello.jsp文件。
b,重定向
如response.sendRedirect("/hello.jsp"):代表到http://localhost:8080/?目錄下尋找hello.jsp文件
五.<form action=“/xxx”>?或?<a href=“/xxx”></a>中的路徑
“/”代表的是?web?站點(diǎn)的根路徑.。
因?yàn)槌溄涌梢枣溄拥饺魏涡枰哪繕?biāo)資源,?所以?/?代表的肯定不是當(dāng)前?web?應(yīng)用的根路徑,?而是當(dāng)前?web?站點(diǎn)的根路徑。
六.Page標(biāo)簽中errorPage屬性的路徑問題
errorPage屬性值如果以”/”開頭表示,表示相對(duì)于當(dāng)前WEB應(yīng)用程序的根目錄,否則,表示相對(duì)與當(dāng)前頁面。
?
轉(zhuǎn)載于:https://www.cnblogs.com/baiduligang/p/4247531.html
總結(jié)
以上是生活随笔為你收集整理的Java Web开发中路径问题小结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 想做一个整合开源安全代码扫描工具的代码安
- 下一篇: Java阻塞队列(BlockingQue