在寫程式時,想要獲取某個資源檔案,或想訪問某個
servlet
,如果路徑寫不對,就找不到該檔案,或訪問失敗。由此可見,路徑很重要。下面我們就來分析一下如何正確找到資源檔案及訪問
servlet。
1.servlet訪問路徑
servlet
的訪問路徑是在
web.xml
檔案中配置的,如下所示:
servlet
訪問路徑
servlet
訪問路徑有如下兩種書寫方式:
路徑以「
/」開頭
路徑以「
*「開頭
servlet
的訪問路徑要麼以「
/」開頭,要麼以「
*」開頭,但是在
servlet
中,現在很少使用「
*」開頭,多用來配置需要過濾的資源.
2.請求**和請求包含路徑
請求**和請求包含需要給出即將**和包含資源的路徑,例如:
request.getrequestdispatcher(
「/bservlet
」).forward(request,response)
,表示要**到
bservlet
。request
物件的getrequestdispatcher(string path)
方法的引數有如下兩種書寫方式: 以「
/」開頭:
相對當前專案路徑,即:
專案名,例如:
request.getrequestdispatcher(
「/bservlet」)
表示**或包含路徑為
專案名/bservlet
的servlet。
不以「/
」開頭:
相對當前
servlet
的路徑,例如:當前
servlet
是aservlet
,訪問它的路徑為
專案名/servlet/aservlet
,那麼request.getrequestdispatcher(
「bservlet」)
就相當於,**或包含路徑為
專案名/servlet/bservlet
的servlet。
以上兩種書寫方式中,以「
/」開頭的路徑是絕對路徑,不以「
/」開頭的路徑是相對路徑。為了以後的開發簡便,建議大家採用第一種方式,即以「
/」開頭的路徑。
3.重定向路徑
進行重定向時,需要給出將要重定向的資源的路徑,例如:
response.sendredirect(
「/example/bservlet」)
,表示重定向到
example
專案中的訪問路徑為「
/bservlet
」的servlet。
重定向中的路徑是客戶端路徑,只要是客戶端路徑都需要加上專案名,否則找不到將要訪問的資源。重定向路徑有以下要求:
路徑要以「
/」開頭 以「
/」開頭,相對當前主機,即
,所以路徑上要加上專案名,如:
response.sendredirect(
「/example/servlet」)
,對應的路徑就是:
4.頁面中超連結和表單路徑
頁面中的超連結和表單路徑和重定向路徑一樣,也是客戶端路徑,因此路徑中要加上專案名。例如:
如果超連結或者表單路徑中沒有加上專案名,如:
,並且沒有以「
/」開頭,那麼就是相對路徑,相對於當前頁面所在路徑。例如,超連結所在頁面是
index.jsp
,那麼index.jsp
頁面的路徑就是:
專案名/aservlet
。如果是這樣就不存在問題,但是如果頁面並不是在應用的根目錄下,而是根目錄下的乙個目錄中,例如
html
目錄中,那麼
index.jsp
的訪問路徑就應該是:
專案名/html
,那麼再使用
中的路徑就會出現問題,所以建議大家使用絕對路徑。
5.servletcontext獲取資源路徑
servletcontext
獲取資源路徑使用的方式是
getrealpath(string path)
,該方法獲取的是應用發布到
tomcat
安裝目錄下的
目錄中的根目錄,如:
servletcontext.getrealpath(「/
」)返回的路徑就是
專案名。具體內容請參考
servletcontext
讀取web
應用中的資源檔案
。
java獲取請求路徑資訊
記錄一下常用路徑資訊的獲取 測試的請求url,get方法 獲取請求方法 request.getmethod 返回 get 獲取請求協議 request.getscheme 返回 http 獲取請求網域名稱 ip位址 request.getservername 返回 localhost 獲取請求埠號 ...
請求路徑問題
訪問路徑與資源名稱 通常的url資源請求路徑由兩部分構成 訪問路徑與資源名稱。資源名稱指的是要訪問資源的直接名稱,如 show.jsp,或與要訪問資源存在對映關係的間接路徑,如show.do 而訪問路徑,則是通過該路徑則可以定位到指定的資源,即在url資源訪問路徑中除了資源名稱以外的其他部分。hel...
Servlet請求資源路徑
servlet容器如何處理請求資源路徑 比如,在瀏覽器位址列輸入http ip port web04 2 abc.html。瀏覽器會將 web04 2 abc.html 作為請求資源路徑放到請求資料報裡面,傳送給容器。容器收到請求資料報以後 step1,依據應用名 web04 2 找到應用所在的資料...