在 Web 中,我们通常需要获取 URL 相对于 Webapp 的路径,主要是下面的几个方法:
request.getServletPath()
request.getPathInfo()
request.getContextPath()
request.getRequestURI()
其中 request.getRequestURI() 的返回值包含了 request.getContextPath(),所以是相对于网站的根目录的。
下面我们分析 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());
}
文章来自网络.
分享到:
相关推荐
- `request.getProtocol()`: 返回请求所使用的协议名称和版本,如`HTTP/1.1`。 - `request.getScheme()`: 返回用于连接到服务器的协议名,通常是`http`或`https`。 - `request.getServerName()`: 返回接收请求的...
12. **SCRIPT_NAME**:`request.getServletPath()`获取请求的Servlet路径,即请求URL中映射到Servlet的部分。 13. **SERVER_NAME**:`request.getServerName()`获取服务器的主机名。 14. **SERVER_PORT**:`...
System.out.println(request.getServletPath()); // 请求映射到的Servlet路径 ``` 这些信息可以帮助开发者了解用户请求的具体资源。 #### 3. 服务器信息 ```java System.out.println(request.getServerName()); //...
- **`request.getServletPath()`**: 获取当前Servlet的路径。 - **`request.getRealPath("/")`**: 获取应用程序根目录的物理路径。 - **`request.getQueryString()`**: 获取请求的查询字符串。 - **`request....
Path info: <%=request.getPathInfo()%> Path translated: <%=request.getPathTranslated()%> Query String: <%=request.getQueryString()%> Content Length: <%=request.getContentLength()%> ...
String uri = request.getServletPath() + (request.getPathInfo() == null ? "" : request.getPathInfo()); for (String url : notCheckURLList) { if (uri.startsWith(url)) { return true; } } return ...
String servletPath = request.getServletPath(); String pathInfo = request.getPathInfo(); out.println("当前请求URI: " + requestURI); out.println("Servlet映射路径: " + servletPath); out.println(...
表单提交时,可以通过`request.getParameter(String name)`或`request.getParameterMap()`方法来获取参数值。其中`getParameter(String name)`用于获取单个参数的值,而`getParameterMap()`则可以获取所有参数及其...
`HttpServletRequest` 提供了 `getServletPath()` 和 `getPathInfo()` 方法来获取请求的URL。`getServletPath()` 返回Servlet映射的路径,而`getPathInfo()` 返回请求URL中Servlet路径之后的部分。`getHeader(...
String uri = request.getServletPath() + (request.getPathInfo() == null ? "" : request.getPathInfo()); return notCheckURLList.contains(uri); } public void init(FilterConfig filterConfig) throws ...
The doFilter method of the Filter is called by the container each time a request/response pair is passed through the chain due to a client request for a resource at the end of the chain. doGet...
3. **获取请求URL信息**:`getContextPath()`返回应用上下文路径,`getServletPath()`获取Servlet路径,`getPathInfo()`获取额外的路径信息,`getQueryString()`返回查询字符串。 4. **获取请求数据**:`...
String resourcePath = RequestUtils.getServletPath(request); if ("".equals(resourcePath) && null != request.getPathInfo()) { resourcePath = request.getPathInfo(); } if (staticResourceLoader.canHandle...
如果没有获取到,则使用request.getPathInfo()方法获取路径信息。接着,方法会对路径进行验证,确保其以正确的前缀开始。如果路径不符合要求,会记录错误信息并返回null。如果路径有效,会去除前缀,并进一步检查...
jsp探针ceshi.jsp ; charset=gb2312" %> class LfSpy { boolean supportHibernate = false; boolean supportJNDI = false;...boolean supportJavaxSql = false;...private final String linuxParseMacAddress(String ...
JSP中的九大内置对象是JSP开发的基础,熟悉这些内置对象的特性和用法对于提高开发效率至关重要。通过上述介绍,相信读者已经对这些内置对象有了初步的认识。在实际项目开发中,根据具体需求合理利用这些内置对象能够...
6. **请求路径**:`getPathInfo()` 和 `getServletPath()` 分别返回URL中路径信息和Servlet映射的路径。 7. **文档根目录**:`getRealPath("/")` 返回服务器上相对于Web应用程序的根目录的物理路径。 8. **查询...
以下详细介绍了在Java和JSP中使用request对象的一些常用方法和属性。 1. 获取协议相关信息 - getProtocol(): 返回请求使用的协议名称和版本,例如"HTTP/1.1"。 - getScheme(): 返回请求使用的协议,如"https"或...
在JSP中,可以使用内置对象`pageContext`的`getRequestDispatcher()`方法配合`RequestDispatcher`对象的`getPathInfo()`或`getServletPath()`方法来获取当前URL的路径信息。例如,`<%= request.getRequestURL() %>`...
下面将根据提供的文件信息,详细说明文档中提及的各个接口和方法。 一、RequestDispatcher接口 RequestDispatcher接口是servlet容器提供的一个用于请求转发和请求包含的接口。方法包括: 1. forward(ServletRequest...