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。
分享到:
相关推荐
在Web应用开发中,`web.xml`配置文件扮演着极其重要的角色,其中`<url-pattern>`元素用于定义Servlet的映射规则,即URL模式。通过不同的URL模式,我们可以精确地控制Servlet如何被客户端请求所调用。本文将详细介绍`...
需要注意的是,XML元素是大小写敏感的,因此`<web-App>`和`<WEB-APP>`都是不合法的写法,正确的写法应该是全部小写`<web-app>`。 #### 二、部署描述符文件内的元素次序 `web.xml`文件内的元素不仅需要正确地书写,...
在`web.xml`配置文件中,URL映射中的`/`前缀同样表示Web应用的根路径,例如,`<url-pattern>/dir1/c.jsp</url-pattern>`会匹配到Web应用的特定资源。 总结一下,路径的处理在浏览器端、服务器端转发和重定向时有...
正则表达式是用于匹配字符串中字符组合的一种工具,在 Java Web 开发中常用于验证用户输入等场景。 #### 示例 ```javascript var reg = new RegExp("\\d{18}"); ``` 这里使用了 JavaScript 的 RegExp 对象创建了一...
`web.xml`是Web应用程序的部署描述符,它定义了Servlet的映射规则,即Servlet如何与URL关联。 例如,一个Servlet默认的配置可能如下: ```xml <servlet-name>MyServlet</servlet-name> <servlet-class>...
但在IIS环境中,由于权限限制,我们通常会在网站根目录创建一个名为Web.config的XML文件来定义重写规则。 ISAPI_REWRITE的规则写法与mod_rewrite类似,主要由RewriteEngine、RewriteCond和RewriteRule三个指令组成...
在`web.xml`配置文件中,可以通过以下方式激活`defaultServlet`来处理特定类型的静态文件: ```xml <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping...
- **解决**: 更改变量获取方式以匹配正确的`id`属性值。 **代码修改**: ```javascript var ms = document.getElementById('ms'); ms.getContext('2d').fillRect(0, 0, 100, 100); // 假设参数为 (x, y, width, ...