Jsp和Servlet中的路徑問題

2021-06-29 10:12:35 字數 1340 閱讀 3635

路徑

* web.xml中路徑,(叫它servlet路徑!)

> 要麼以「*」開關,要麼為「/」開頭

* **和包含路徑

> *****以「/」開頭:相對當前專案路徑,例如:http://localhost:8080/專案名/ request.getrequestdispacher("/bservlet").for...();

> 不以「/」開頭:相對當前servlet路徑。 request.getrequestdispacher("/bservlet").for...();,假如當前servlet是:http://localhost:8080/專案名/servlet/aservlet, 就是http://localhost:8080/專案名/servlet/bservlet

* 重定向路徑(客戶端路徑)

> 以「/」開頭:相對當前主機,例如:http://localhost:8080/, 所以需要自己手動新增專案名,例如;response.sendredirect("/day10_1/bservlet");

* 頁面中超連結和表單路徑

> 與重定向相同,都是客戶端路徑!需要新增專案名

>

>

> ,如果不以「/」開頭,那麼相對當前頁面所在路徑。如果是http://localhost:8080/day10_1/html/form.html。 即:http://localhost:8080/day10_1/html/asevlet

> *****建立使用以「/」開頭的路徑,即絕對路徑!

* servletcontext獲取資源路徑

> 相對當前專案目錄,即當然index.jsp所在目錄

* classloader獲取資源路徑

> 相對classes目錄

* class獲取資源路徑

> 以「/」開頭相對classes目錄

> 不以「/」開頭相對當前.class檔案所在目錄。

總之:不管是**包含還是重定向最好以/開頭,

**和包含如果以/開頭,相對的是當前專案路徑,即無需你再寫專案名稱

重定向如果以/開頭,相對的是當前主機,即需要加上專案名稱(頁面中超連結和表單路徑與重定向的寫法一致,即以/開頭,還需加上專案名稱)

重定向的寫法一般是:response.sendredirect("/web/cservlet");

**或包含的寫法是:request.getrequestdispatcher("/twoservlet").forward(request, response);**(留頭不留體)

request.getrequestdispatcher("/twoservlet").include(request, response);// 請求包含(既留頭又留體)

Jsp和Servlet 路徑問題

也可以看作url中不包含部署專案名的跟路徑 比如 localhost 8080 也可以看做url中包含部署專案名的根路徑 比如 localhost 8080 myproject 相對路徑是基於url來講的.並不是硬碟中的檔案.比如乙個servlet在url中可以直接使用http localhost ...

JSp與Servlet跳轉路徑配置

一 web.xml的配置 servletinfoservlet name servlet.servletinfoservlet class servlet servletinfoservlet name servletinfourl pattern 二 login.jsp檔案實現關聯servlet的...

JSP 和 Servlet 中的幾個編碼設定

首先,說說 jsp 和 servlet 中的幾個編碼的作用.在 jsp 和 servlet 中主要有以下幾個地方可以設定編碼,pageencoding utf 8 contenttype text html charset utf 8 request.setcharacterencoding utf...