getContextPath、getServletPath、getRequestURI、getRealPath、getRequestURL、getPathInfo();的区别

<%  
    out.println("getContextPath: "+request.getContextPath()+"<br/>");  
    out.println("getServletPath: "+request.getServletPath()+"<br/>");  
    out.println("getRealPath: "+request.getRealPath("/")+"<br/>");  
    out.println("getRequestURL: "+request.getRequestURL()+"<br/>");  
    out.println("getRequestURI: "+request.getRequestURI()+"<br/>");  
  
%>

出来的输出效果为:

getContextPath: /ckswzl  
getServletPath: /admin/login.jsp  
getRealPath: D:documentEclipseWorkSpace2.metadata.pluginsorg.eclipse.wst.server.core	mp0wtpwebappsckswzl  
getRequestURL: http://localhost:8080/ckswzl/admin/login.jsp  
getRequestURI: /ckswzl/admin/login.jsp  

getContextPath是返回的项目上下文的名字(其实也就是项目名);

getServletPath是返回的是项目名到当前jsp文件的路径(意思就是在这个项目首页到文件的路径)

getRequestURI是返回的是项目名到整个文件的请求路径

getRealPath是返回的文件所在的绝对路劲。相对于当前计算机的真实路径

getRequestURL是返回的整个URL的路径请求(意思就是返回的浏览器地址栏的整个地址)

request.getPathInfo();这个方法返回请求的实际URL相对于请求的serlvet的url的路径。

如果我们的 servlet-mapping 如下配置: 

<servlet-mapping>
  <servlet-name>jetbrick-template</servlet-name>
  <url-pattern>/template/*</url-pattern>
</servlet-mapping>
那么访问: /context/templates/index.jetx

request.getServletPath() == "/templates"
request.getPathInfo() == "/index.jetx"
原文地址:https://www.cnblogs.com/xiaoliangup/p/9137871.html