javaweb 中的路徑問題

(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應用程序的根目錄,否則,表示相對與當前頁面。



轉自:http://www.cnblogs.com/tianguook/archive/2012/08/31/2665755.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章