路徑
* 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...