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
这就是三者的区别。