getContextPath、getServletPath、getRequestURI,getRealPath的區別
舉個例子
訪問網址:http://192.168.1.190:9080/0809/demo3
0809=web專案名
demo3=servlet的url-pattern
原出處:https://www.cnblogs.com/keyi/p/6232658.html
假定你的web application 專案名稱為news,你在瀏覽器中輸入請求路徑: http://localhost:8080/news/main/list.jsp
則執行下面向行程式碼後列印出如下結果:
1、 System.out.println(request.getContextPath()); //可返回站點的根路徑。也就是專案的名字
列印結果:/news
2、System.out.println(request.getServletPath());
列印結果:/main/list.jsp
3、 System.out.println(request.getRequestURI());
列印結果:/news/main/list.jsp
4、 System.out.println(request.getRealPath("/"));
request.getRealPath("/")已經不建議使用。
getRealPath();
返回一個字串,包含一個給定虛擬路徑的真實路徑。
struts2中:
ServletContext ctx=ServletActionContext.getServletContext();
String path=ctx.getRealPath("/");
String path1=ctx.getRealPath("/files/view.jsp");
輸出:path為D:\Javasoftware\apache-tomcat-7.0.70\apache-tomcat-7.0.70\webapps\struts2-1\
path1為D:\Javasoftware\apache-tomcat-7.0.70\apache-tomcat-7.0.70\webapps\struts2-1\files\view.jsp
\files\view.jsp這部分就是虛擬路徑
D:\Javasoftware\apache-tomcat-7.0.70\apache-tomcat-7.0.70\webapps\struts2-1\ 為專案的絕對路徑
servlet中:
private ServletConfig config;
public void init(ServletConfig config) throws ServletException {
this.config=config;}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext ctx=config.getServletContext();
String temp=ctx.getRealPath("/");
}
列印結果:F:\Tomcat 6.0\webapps\news\test
注:
URI=contextPath+servletPath
相關文章
- request.getRequestURI 與request.getServletPath() 區別Servlet
- getRealPath("/")和getContextPath()Context
- request.getContextPath()Context
- String filePath = request.getSession().getServletContext().getRealPath("/");這句話返回的路徑是什麼,解釋下getRealPath("/")函式中的"/"表示什麼意思SessionServletContext函式
- ??與?:的區別
- 蜂蜜的區別
- 和 的區別
- as 和 with的區別
- ||和??的區別
- /*和/**的區別
- LinkedList和ArrayList的區別、Vector和ArrayList的區別
- http和https的區別/get和post的區別HTTP
- UIModalPresentationStyle 各種型別的區別UI型別
- @synthesize @dynamic 的區別
- ../和./和/的區別
- CMM/CMMI 的區別
- scala中:: , +:, :+, :::, +++的區別
- ./ 和sh 的區別
- JQuery this和$(this)的區別jQuery
- jquery $(this) 和this的區別jQuery
- T和?的區別
- JavaScript中的“=、==、===”區別JavaScript
- ++a和a++的區別
- MySQL的@與@@區別MySql
- mybatis #與$的區別MyBatis
- BIO、NIO的區別
- PHP版本的區別PHP
- Null 與 “” 的區別Null
- restore,recover的區別REST
- truncate delete 的區別delete
- makefile =和:=的區別
- 值型別與引用型別的區別型別
- Golang的值型別和引用型別的範圍、儲存區域、區別Golang型別
- Mybatis中#{}和${}傳參的區別及#和$的區別小結MyBatis
- JS 的型別(null 和 undefined 的區別)JS型別NullUndefined
- 互斥量與臨界區的區別
- Android中 @和?區別以及?attr/**與@style/**等的區別Android
- 自增長列和序列的區別(identity與sequence的區別)IDE