- request.getMethod(); // GET
- request.getServerName(); // localhost
- request.getServerPort(); // 8080
- request.getLocalAddr(); // 127.0.0.1
- request.getLocalName(); // 127.0.0.1
- request.getLocalPort(); // 8080
- request.getRequestURL(); // http://localhost:8080/news/addNews.do
- request.getRequestURI(); // /news/addNews.do
- request.getContextPath(); // /news
- request.getServletPath(); // /addNews.do
- request.getQueryString(); // type=1
- request.getProtocol(); // HTTP/1.1
- request.getScheme(); // http
- request.getPathInfo(); // null
- request.getPathTranslated(); // null
- request.getAuthType(); // null
- request.getRealPath(); // D:\Tomcat5.5\webapps\news\
注释后是方法的返回值
转自:http://gemini.iteye.com/blog/45543
下面我们分析 request.getServletPath() 和 request.getPathInfo():
1. 如果我们的 servlet-mapping 如下配置:
<servlet-mapping> <servlet-name>jetbrick-template</servlet-name> <url-pattern>*.jetx</url-pattern> </servlet-mapping>
那么访问: /context/templates/index.jetx
request.getServletPath() == "/templates/index.jetx"
request.getPathInfo() == <null>
2. 如果我们的 servlet-mapping 如下配置:
<servlet-mapping> <servlet-name>jetbrick-template</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>那么访问: /context/templates/index.jetx
request.getServletPath() == ""
request.getPathInfo() == "/templates/index.jetx"
3. 如果我们的 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"
总结 :
所以,我们要获取相对于 request.getContextPath() 的路径,我们可以使用如下的代码:
String uri = request.getServletPath();
String pathInfo = request.getPathInfo();
if (pathInfo != null && pathInfo.length() > 0) {
uri = uri + pathInfo;
}
或者:
String uri = request.getRequestURI();
String contextPath = request.getContextPath();
if (contextPath != null && contextPath.length() > 0) {
uri = uri.substring(contextPath.length());
}
转自:https://my.oschina.net/sub/blog/182408