我的人生就好比这两条线


Servlet中request对象得到路径问题

1.项目源码:
假设现在有一个名为JavaWeb的项目,其中有一个名为TestServlet的serlvet,其doGet方法为:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

 System.out.println("URL:"+request.getRequestURL().toString()); 
 System.out.println("URI:"+request.getRequestURI()); 
 System.out.println("ServletPath:"+request.getServletPath()); 
 System.out.println("ContextPath:" + request.getContextPath());
 //得到文件路径(添加的知识点)
 System.out.println("RealPath:" + request.getSession().getServletContext().getRealPath());
 System.out.println("RealPath:" + request.getSession().getServletContext().getContextPath());

2.控制台输出:
现在在浏览器中发送到TestServlet的请求,发现控制台输出如下:

即在这个请求中:
RequestURL为 http://localhost:8080/JavaWeb/TestServlet
RequestURI为 /JavaWeb/TestServlet
ServletPath为 /TestServlet
ContextPath为 /javaweb(注意这里只包含项目名)

RealPath为/文件完整路径 E:\tomcat\webapps\myajax\userinfo.properties  
ContextPath为/文件相对路径/myajax/userinfo.properties 
这就是三者的区别。

posted @ 2017-08-23 21:37  StephenChowcai  阅读(228)  评论(0编辑  收藏  举报