HttpServletrequest是一个接口,它的上级接口是ServletRequest,也是一个接口,
请求http://localhost:8080/testweb (配置Servlet时 url-pattern=/*)
req.getServletPath()
req.getContextPath()
req.getServletContext().getContextPath()
req.getPathInfo()
req.getRequestURI()
req.getRequestURL()
req.getServletContext().getRealPath("/")
结果:
servletPath:
contextPath:/testweb
contextPath2:/testweb
pathInfo:null
uri:/testweb
realPath:G:\java\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\testweb\
请求http://localhost:8080/testweb/abc (配置Servlet时 url-pattern=/*)
servletPath:
contextPath:/testweb
contextPath2:/testweb
pathInfo:/abc
uri:/testweb/abc
realPath:G:\java\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\testweb\
请求http://localhost:8080/testweb/abc/def/ghi/test.html (url-pattern=/abc/def/*)
结果:
servletPath:/abc/def
contextPath:/testweb
contextPath2:/testweb
pathInfo:/ghi/test.html
uri:/testweb/abc/def/ghi/test.html
realPath:G:\java\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\testweb\
总结:
1. getServletPath():获取能够与“url-pattern”中匹配的路径,注意是完全匹配的部分,*的部分不包括。
2. getPathInfo():此方法返回在这个请求的URL的Servlet路径之后的请求URL的额外的路径信息。如果 这个请求URL包括一个查询字符串,在返回值内将不包括这个查询字符串
3. getContextPath():获取项目的根路径
4. getRequestURI:获取根路径到地址结尾?
5. getRequestURL:获取请求的地址链接(浏览器中输入的地址)
6. getServletContext().getRealPath(“/”):获取“/”在机器中的实际地址
7. getScheme():获取的是使用的协议(http 或https)
8. getProtocol():获取的是协议的名称(HTTP/1.11)
9. getServerName():获取的是域名(xxx.com)
10. getLocalName:获取到的是IP
getPageInfo()返回的仍然是:"/joejoe1991/a.html" dwr 是项目的名字