Java Web開發中路徑問題小結


(1) Web開發中路徑的幾個基本概念

假設在瀏覽器中訪問了如下的頁面,如圖1所示: 

1

Eclipse中目錄結構如圖2所示:

 

2

那么針對這個站點的幾個基本概念表述如下:

1. web站點的根目錄http://localhost:8080/

2. web應用程序的的根目錄:http://localhost:8080/test/

3.同級目錄:http://localhost:8080/test/articles/article1.jsphttp://localhost:8080/test/articles/article2.jsp 就是處於同級目錄

 

二.幾個路徑相關函數的返回值:

TestURL.jsp文件中測試了三個路徑相關函數:

1. getRequestURI()

2. getContextPath()

3. getServletPath()

結果如圖3所示:

 

3

三.web.xml中的路徑

Servlet 映射 <url-pattern>/xx</url-pattern> 中的 “/” 代表當前 web 應用的根路徑。

這個只要思考一下就能得出結論:所有的web.xml文件都是描述某個web應用的部署相關信息,所以“/”只能代表當前 web 應用的根路徑,而不是指向web站點的根目錄

四.轉發和重定向中的路徑問題

1. 如果沒有“/,request.getRequestDispatcher("hello.jsp ").forward(request, response) response.sendRedirect(" hello.jsp ") 就表示在同級目錄中尋找login.jsp文件。

2. 如果路徑中包含“/”(注意,這里的“/”是指路徑中的第一個“/”)

a, 轉發

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 站點的根路徑.

因為超鏈接可以鏈接到任何需要的目標資源, 所以 / 代表的肯定不是當前 web 應用的根路徑, 而是當前 web 站點的根路徑。

六.Page標簽中errorPage屬性的路徑問題

errorPage屬性值如果以”/”開頭表示,表示相對於當前WEB應用程序的根目錄,否則,表示相對與當前頁面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM