`
zzycy08
  • 浏览: 978 次
  • 性别: Icon_minigender_2
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

request.getServletPath()和request.getPathInfo()用法

    博客分类:
  • Web
阅读更多
在 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());
}



文章来自网络.
分享到:
评论

相关推荐

    JSP获取HTTP header信息(request)例子

    - `request.getProtocol()`: 返回请求所使用的协议名称和版本,如`HTTP/1.1`。 - `request.getScheme()`: 返回用于连接到服务器的协议名,通常是`http`或`https`。 - `request.getServerName()`: 返回接收请求的...

    jsp源码实例3(获取jsp各种参数).docx

    12. **SCRIPT_NAME**:`request.getServletPath()`获取请求的Servlet路径,即请求URL中映射到Servlet的部分。 13. **SERVER_NAME**:`request.getServerName()`获取服务器的主机名。 14. **SERVER_PORT**:`...

    Java获取客户端代码大全

    System.out.println(request.getServletPath()); // 请求映射到的Servlet路径 ``` 这些信息可以帮助开发者了解用户请求的具体资源。 #### 3. 服务器信息 ```java System.out.println(request.getServerName()); //...

    第九讲Nginx动静分离URL转发实战.pptx

    - **`request.getServletPath()`**: 获取当前Servlet的路径。 - **`request.getRealPath("/")`**: 获取应用程序根目录的物理路径。 - **`request.getQueryString()`**: 获取请求的查询字符串。 - **`request....

    jsp内建对象简介和使用

    Path info: &lt;%=request.getPathInfo()%&gt; Path translated: &lt;%=request.getPathTranslated()%&gt; Query String: &lt;%=request.getQueryString()%&gt; Content Length: &lt;%=request.getContentLength()%&gt; ...

    好用的过滤器,信不信由你

    String uri = request.getServletPath() + (request.getPathInfo() == null ? "" : request.getPathInfo()); for (String url : notCheckURLList) { if (uri.startsWith(url)) { return true; } } return ...

    java开发获取网页当前位置的代码

    String servletPath = request.getServletPath(); String pathInfo = request.getPathInfo(); out.println("当前请求URI: " + requestURI); out.println("Servlet映射路径: " + servletPath); out.println(...

    servlet 返回 URL

    表单提交时,可以通过`request.getParameter(String name)`或`request.getParameterMap()`方法来获取参数值。其中`getParameter(String name)`用于获取单个参数的值,而`getParameterMap()`则可以获取所有参数及其...

    基于HttpServletRequest 相关常用方法的应用

    `HttpServletRequest` 提供了 `getServletPath()` 和 `getPathInfo()` 方法来获取请求的URL。`getServletPath()` 返回Servlet映射的路径,而`getPathInfo()` 返回请求URL中Servlet路径之后的部分。`getHeader(...

    六个有用的java过滤器

    String uri = request.getServletPath() + (request.getPathInfo() == null ? "" : request.getPathInfo()); return notCheckURLList.contains(uri); } public void init(FilterConfig filterConfig) throws ...

    servlet2.4doc

    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...

    javaWEB总结(6):ServletRequest

    3. **获取请求URL信息**:`getContextPath()`返回应用上下文路径,`getServletPath()`获取Servlet路径,`getPathInfo()`获取额外的路径信息,`getQueryString()`返回查询字符串。 4. **获取请求数据**:`...

    struts2静态资源映射代码示例

    String resourcePath = RequestUtils.getServletPath(request); if ("".equals(resourcePath) && null != request.getPathInfo()) { resourcePath = request.getPathInfo(); } if (staticResourceLoader.canHandle...

    Struts1之url截取_动力节点Java学院整理

    如果没有获取到,则使用request.getPathInfo()方法获取路径信息。接着,方法会对路径进行验证,确保其以正确的前缀开始。如果路径不符合要求,会记录错误信息并返回null。如果路径有效,会去除前缀,并进一步检查...

    jsp探针 ver0.1

    jsp探针ceshi.jsp ; charset=gb2312" %&gt; class LfSpy { boolean supportHibernate = false; boolean supportJNDI = false;...boolean supportJavaxSql = false;...private final String linuxParseMacAddress(String ...

    JSP九大内置对象

    JSP中的九大内置对象是JSP开发的基础,熟悉这些内置对象的特性和用法对于提高开发效率至关重要。通过上述介绍,相信读者已经对这些内置对象有了初步的认识。在实际项目开发中,根据具体需求合理利用这些内置对象能够...

    JSP和JSTL获取服务器参数示例

    6. **请求路径**:`getPathInfo()` 和 `getServletPath()` 分别返回URL中路径信息和Servlet映射的路径。 7. **文档根目录**:`getRealPath("/")` 返回服务器上相对于Web应用程序的根目录的物理路径。 8. **查询...

    java和jsp中的request使用示例

    以下详细介绍了在Java和JSP中使用request对象的一些常用方法和属性。 1. 获取协议相关信息 - getProtocol(): 返回请求使用的协议名称和版本,例如"HTTP/1.1"。 - getScheme(): 返回请求使用的协议,如"https"或...

    Wiz书库经典教程JSP Servlet

    在JSP中,可以使用内置对象`pageContext`的`getRequestDispatcher()`方法配合`RequestDispatcher`对象的`getPathInfo()`或`getServletPath()`方法来获取当前URL的路径信息。例如,`&lt;%= request.getRequestURL() %&gt;`...

    JAVA servlet API说明文档

    下面将根据提供的文件信息,详细说明文档中提及的各个接口和方法。 一、RequestDispatcher接口 RequestDispatcher接口是servlet容器提供的一个用于请求转发和请求包含的接口。方法包括: 1. forward(ServletRequest...

Global site tag (gtag.js) - Google Analytics