`
wsmajunfeng
  • 浏览: 501552 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

web.xml中的url-pattern写法规则及匹配过程

 
阅读更多

1.  写法

①完全匹配:以“/”开头,以字母(非“*”)结束

    如:<url-pattern>/test/list.do</url-pattern>

②目录匹配:以“/”开头且以“/*”结尾

   如:<url-pattern>/test/*</url-pattern>

<url-pattern>/*</url-pattern>

③扩展名匹配:以“*.”开头,以扩展名结束

   如:<url-pattern>*.do</url-pattern>

④ “/” 用来表明对应的Servlet为应用默认的Servlet。在这种情况下Servlet路径是请求的URI去掉上下文路径并且路径信息为null。

2.  匹配过程

当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://localhost/test/aaa.html,我的应用上下文是test,容器会将http://localhost/test去掉,剩下的/aaa.html部分拿来做servlet的映射匹配。

容器会首先查找完全匹配,如果找不到,再查找目录匹配,如果也找不到,就查找扩展名匹配。如果还没有找到一个servlet,器将尝试为请求的资源使用内容服务,如果应用定义了一个默认servlet,则容器会将请求丢给默认servlet。

如果一个请求匹配多个“目录匹配”,容器会选择最长的匹配。如:servletA的url-pattern为/test/*,而servletB的url-pattern为/test/a/*,此时访问http://localhost/test/a时,容器会选择路径最长的servlet来匹配,也就是这里的servletB。

分享到:
评论

相关推荐

    url-pattern的3种写法

    在Web应用开发中,`web.xml`配置文件扮演着极其重要的角色,其中`&lt;url-pattern&gt;`元素用于定义Servlet的映射规则,即URL模式。通过不同的URL模式,我们可以精确地控制Servlet如何被客户端请求所调用。本文将详细介绍`...

    关于web.xml配置的详细说明.pdf

    需要注意的是,XML元素是大小写敏感的,因此`&lt;web-App&gt;`和`&lt;WEB-APP&gt;`都是不合法的写法,正确的写法应该是全部小写`&lt;web-app&gt;`。 #### 二、部署描述符文件内的元素次序 `web.xml`文件内的元素不仅需要正确地书写,...

    java_web开发中的路径问题定义.pdf

    在`web.xml`配置文件中,URL映射中的`/`前缀同样表示Web应用的根路径,例如,`&lt;url-pattern&gt;/dir1/c.jsp&lt;/url-pattern&gt;`会匹配到Web应用的特定资源。 总结一下,路径的处理在浏览器端、服务器端转发和重定向时有...

    javaWeb笔记.docx

    正则表达式是用于匹配字符串中字符组合的一种工具,在 Java Web 开发中常用于验证用户输入等场景。 #### 示例 ```javascript var reg = new RegExp("\\d{18}"); ``` 这里使用了 JavaScript 的 RegExp 对象创建了一...

    myeclipse开发servlet_动力节点Java学院整理

    `web.xml`是Web应用程序的部署描述符,它定义了Servlet的映射规则,即Servlet如何与URL关联。 例如,一个Servlet默认的配置可能如下: ```xml &lt;servlet-name&gt;MyServlet&lt;/servlet-name&gt; &lt;servlet-class&gt;...

    ISAPI-REWRITE伪静态规则写法以及说明

    但在IIS环境中,由于权限限制,我们通常会在网站根目录创建一个名为Web.config的XML文件来定义重写规则。 ISAPI_REWRITE的规则写法与mod_rewrite类似,主要由RewriteEngine、RewriteCond和RewriteRule三个指令组成...

    JavaWeb项目中springmvc和tomcat对静态文件的处理

    在`web.xml`配置文件中,可以通过以下方式激活`defaultServlet`来处理特定类型的静态文件: ```xml &lt;servlet-mapping&gt; &lt;servlet-name&gt;default&lt;/servlet-name&gt; &lt;url-pattern&gt;*.js&lt;/url-pattern&gt; &lt;/servlet-mapping...

    html5测试题.docx

    - **解决**: 更改变量获取方式以匹配正确的`id`属性值。 **代码修改**: ```javascript var ms = document.getElementById('ms'); ms.getContext('2d').fillRect(0, 0, 100, 100); // 假设参数为 (x, y, width, ...

Global site tag (gtag.js) - Google Analytics