获取路径方式的区别
tomcat配置自动加载的根路径:<Context path="/" docBase="E:\Work\ad91_src\finance\WebRoot" reloadable="true" debug="0"/>
JSP页面代码:
<%
String url = request.getRequestURL().toString();
String uri = request.getRequestURI();
String servletPath = request.getServletPath();
String contextPath = request.getContextPath();
%>
url:<%=url %></br>
uri:<%=uri %></br>
servletPath :<%=servletPath %></br>
contextPath :<%=contextPath %>
JSP页面输出内容:
url:http://localhost:8080/admin/fa/contract/test.jsp
uri:/admin/fa/contract/test.jsp
servletPath :/admin/fa/contract/test.jsp
contextPath :
如果tomcat不配置自动加载的情况:
例子
假定你的工程名称为finance,你在浏览器中输入请求路径:
http://localhost:8080/finance/pages/test.jsp
JSP页面输出内容:
url:http://localhost:8080/finance/pages/test.jsp
uri:/finance/pages/test.jsp
servletPath :/pages/test.jsp
contextPath :/finance
request.getRealPath("/"));
JSP servlet API提供了getRealPath(path)方法,返回给定虚拟路径的真实路径,如果转换错误,则返回null。
打印结果:D:/Tomcat5.0/webapps/finance/test
结论:
request.getRequestURI() : 项目下的路径request.getRequestURL(): 互联网络下的唯一路径
request.getContextPath() :项目路径(配置tomcat的话就是配置路径)。
request.getServletPath() :servlet上下文,跟uri比较没有项目名称
request。getRealPath("path"):返回虚拟路径的真是路径。