servlet/jsp中的一些路徑問題

來源:互聯網
上載者:User

一:servlet

可能經常我們需要在servlet中處理一些路徑問題,比如,想得到當前應用中某個檔案的實體路徑,或者需要知道某個請求的具體路徑,這時就需要用到這些方法了。

1:獲得web應用的物理絕對路徑

用到了getServletContext()中的getRealPath ()方法,它能夠返回當前web應用中的某個檔案的物理絕對路徑

String webRealPath=request.getSession().getServletContext().getRealPath("/");

這裡用“/”,返回的時web應用根目錄的實體路徑,比如我的web應用在本機上的存放位置是

C:\Eclipse\workspace\mynews\MyNews 
                                                              |__WEB-INF 
                                                                         |___class 
                                                                         |___lib

C:\Eclipse\workspace\mynews\MyNews

2:當我在瀏覽器輸入以下請求路徑時http://localhost:8080/mynews/index.jsp

以下各個方法輸出結果如下:

request.getContextPath()輸出:

/mynews

獲得URI

request.getRequestURI()輸出:

/mynews/index.jsp

獲得URL

request.getRequestURL()輸出:

http://localhost:8080/mynews/index.jsp

知道了這幾個方法的不同,就很容易在程式中使用了

二:Jsp中的一些路徑問題

在jsp中可以使用相對路徑,所以很容易出現一些問題

比如我現在有名為path的一個web應用程式,其中的檔案組織圖如下:

  web
      |__WEB-INF
      |__index.jsp
      |__internal
           |__internal.jsp

在index.jsp中,有如下串連<a href="internal/internal.jsp">link</a>點擊此串連後會連到如下地址:

http://localhost:8080/web/internal/internal.jsp,也就是說,上邊那個串連地址是相對於index.jsp來說的。

當把連結改為<a href="/internal/internal.jsp">link</a>就會發現連結地址變成了如下:

http://localhost:8080/internal/internal.jsp也就是說,當加上“/”時,就變成了相對於網站根目錄,而不是相對於web應用程式的根目錄。

同樣我們在internal.jsp中,我們可以使用../index.jsp來連結到index.jsp頁面。

以上原則也適用於在提交表單時action中的路徑問題,無論action轉向的是servlet還是jsp頁面。

END!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.