java web項目中url路徑問題(帶不帶“/”)

一般例如jsp,css,js之類的文件以及項目自帶的圖片資源什麼的都是放在項目名/WebContent目錄下(也可能是項目名/Webapp),以下事實基於這個環境下,並假設我有一個項目叫TaoBao,下面是目錄

如圖,jsp直接暴露在WebContent目錄下,images中是各種圖片,js中有.js和.css文件


java web中訪問資源的幾種方法:

//重定向

response.sendRedirect("/moubao/index.jsp");

//轉發

request.getRequestDispatcher("/index.jsp").forward(request, response);

//超鏈接

<a href='/moubao/index.jsp' />

//表單提交

<form action='/moubao/index.jsp'>...</form>

以上4中方式,除了轉發是由服務器發起的路徑,其他都是瀏覽器發起的(大家明白這句話我想表達的意思就可以了)

路徑開頭直接“/”表示當前路徑

結論:

1、瀏覽器發起的請求中的“/”表示“Tomcat/webapps”目錄下,比如你在瀏覽器中輸入“localhost:8080/TaoBao”中的“/”就是表示Tomcat/webapps,調用資源的時候需要寫/TaoBao/index.jsp

2、而服務器發起的請求中“/”表示“Tomcat/webapps/TaoBao”的目錄,調用的時候寫/index.jsp

注意到區別了嗎

根據以上結論,比方說,我在cart.jsp中需要訪問另一個jsp頁面或者images中的圖片

<a href="/TaoBao/details.jsp></a>

<img src="/TaoBao/images/001.jpg>

或者也可以這樣,利用”..“切換到目錄/TaoBao之下

<a href="../details.jsp></a>

<img src="../images/001.jpg>

項目如果要重命名什麼的,你也可以選擇String path = request.getContextPath();來獲取當前項目,System.out.print(path)在我當前項目下的輸出結果就是 /TaoBao,(ps:在.jsp中可以直接這樣調用方法;在.java中如果想使用這個方法需要注意的是request是HttpServletRequest類的實例,如果你的方法中request是ServletRequest的實例,那需要轉換一下)


有緣再更新,與各位同仁互勉。

轉載請註明出處,謝謝

https://blog.csdn.net/Mart1nn/article/details/82899835

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