在Javaweb项目中,会用到一些地址,以下是几个常见地址的区分,项目目录如下:
‘
通过index.jsp访问ProductServlet,ProductServlet代码如下,分别打印几个地址,查看区别:
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("request.getRequestURI():"+request.getRequestURI());
System.out.println("request.getRequestURL():"+request.getRequestURL());
System.out.println("request.getRealPath():"+request.getRealPath("/"));
System.out.println("request.getContextPath():"+request.getContextPath());
System.out.println("request.getServletPath():"+request.getServletPath());
}
最后控制台打印结果如下:
request.getRequestURI():/struts2/ProductServlet
request.getRequestURL():http://localhost:8080/struts2/ProductServlet
request.getRealPath():D:\development_tools\apache-tomcat-7.0.47\webapps\struts2\
request.getContextPath():/struts2
request.getServletPath():/ProductServlet
补充,如果需要获取具体某一个请求的地址从哪个页面发出,比如这个例子中要获取的request来自http://localhost:8080/struts2/index.jsp这个页面,那我们需要这样做获取这个request地址:
request.getHeader("referer")