web.xml中url-pattern的用法
目录结构:
一.url-pattern的三种写法
- 精确匹配。以"/"开头,加上servlet名称。
- /ad
- 路径匹配。以"/"开头,加上通配符"*"。
- /*
- 扩展名匹配。以通配符"*"开头,加上扩展名。
- *.action
二.servlet匹配规则
- 先精确匹配,再路径匹配。servlet-mapping1:<url-pattern>/ad</url-pattern>,servlet-mapping2:<url-pattern>/*</url-pattern>。当一个请求http://localhost:8080/ad来的时候,servlet-mapping1匹配到,不再用servlet-mapping2匹配。
- 路径匹配的时候,先最长路径匹配,再最短路径匹配。servlet-mapping1:<url-pattern>/ad/uplaod.jsp</url-pattern>,servlet-mapping2:<url-pattern>/ad/*</url-pattern>。当一个请求http://localhost:8080/ad/upload.jsp来的时候,servlet-mapping1匹配到,不再用servlet-mapping2匹配。
- 至于扩展名匹配,就是单独于精确匹配和匹配的一类了。struts2的扩展名就是.action,所以http://localhost:8080/ad.action会被servlet-mapping:<url-pattern>*.action</url-pattern>匹配到。
- 以上都找不到servlet,就用默认的servlet,配置为<url-pattern>/</url-pattern>。
三.
filter匹配规则
- 顺着web.xml定义的filter顺序匹配,匹配到了就开始filter。
- 有几个就匹配几次filter几次。
<filter>
<filter-name>encodeFilter</filter-name>
<filter-class>com.skylark.common.util.EncodeFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>encodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <filter>
<filter-name>initSessionFilter</filter-name>
<filter-class>com.skylark.service.servlet.InitSessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>initSessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>任何请求过来的时候,都会先encode,然后initSession。
四,语法错误的后果
如果匹配符出现语法错误,那么项目是不能够发布的。笔者的服务器报错了如下的错误:
Server Tomcat v8.5 Server at localhost failed to start.
五,原文链接
web.xml中url-pattern的用法的更多相关文章
- web.xml中 error-page的正确用法
<error-page> <error-code>404</error-code> <location>/mvc/hello1?i=1</loca ...
- web.xml中的<jsp-config>的用法详解
<jsp-config> 包括<taglib> 和<jsp-property-group> 两个子元素. 其中<taglib>元素在JSP 1.2时就已 ...
- 绝对路径${pageContext.request.contextPath}用法及其与web.xml中Servlet的url-pattern匹配过程
以系统的一个“添加商品”的功能为例加以说明,系统页面为add.jsp,如图一所示: 图一 添加商品界面 系统的代码目录结构及add.jsp代码如图二所示: 图二 系统的代码目录结构及add.js ...
- (转)绝对路径${pageContext.request.contextPath}用法及其与web.xml中Servlet的url-pattern匹配过程
以系统的一个“添加商品”的功能为例加以说明,系统页面为add.jsp,如图一所示: 图一 添加商品界面 系统的代码目录结构及add.jsp代码如图二所示: 图二 系统的代码目录结构及add.js ...
- Web.xml中Filter过滤器标签几个说明
在研究liferay框架中看到Web.xml中加入了过滤器的标签,可以根据页面提交的URL地址进行过滤,发现有几个新标签没用过,下面就介绍以下几个过滤器的标签用法: <!-- 定义Filter ...
- web.xml中Filter过滤器标签说明
原文:http://www.cnblogs.com/edwardlauxh/archive/2010/03/11/1918618.html 在研究liferay框架中看到Web.xml中加入了过滤器的 ...
- SpringMVC(十六):如何使用编程方式替代/WEB-INF/web.xml中的配置信息
在构建springmvc+mybatis项目时,更常用的方式是采用web.xml来配置,而且一般情况下会在web.xml中使用ContextLoaderListener加载applicationCon ...
- 使用框架时,在web.xml中配置servlet时,拦截请求/和/*的区别。
关于servlet的拦截设置,之前看了好多,说的都不太清除,明白. 最近明白了一些,总的来说就是保证拦截所有用户请求的同时,放行静态资源. 现整理如下: 一.我们都知道在基于Spring的Applic ...
- 在web.xml中配置SpringMVC
代码如下 <servlet> <servlet-name>springMVC</servlet-name> <servlet-class>org.spr ...
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...
随机推荐
- centos 6.5 升级php
1>追加CentOS 6.5的epel及remi源. # rpm -Uvh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/epel-re ...
- <程序员从入门到精通> -- How
定位 自己才是职业生涯的管理者,想清楚自己的发展路径: 远期的理想是什么?近期的规划是什么?今日的任务和功课又是什么? 今日之任务或功课哪些有助于近期之规划的实现,而近期之规划是否有利于远期之理想? ...
- 免费SSL证书 之Let’s Encrypt申请与部署(Windows Nginx)
我着着皇帝的新衣,但是你看不见 有一颗愿意等待的心,说明你对未来充满希望.有一颗充满希望的心,那么等待又算什么.人就是在等待与希望中度过,我们永远要对未来充满信心! 读在最前面: 1.本文案例为 ...
- oracle SEQUENCE 创建, 修改,删除
oracle创建序列化: CREATE SEQUENCE seq_itv_collection INCREMENT BY 1 -- 每次加几个 STA ...
- PHP5.4~7.1新特性总结
http://note.youdao.com/noteshare?id=7273b858fc12873ad092979e4ba173a7&sub=WEB334fdcf50b507ad93549 ...
- 微软开源全新的文档生成工具DocFX
微软放弃Sandcastle有些年头了,微软最近开源了全新的文档生成工具DocFX,目前支持C#和VB,类似JSDoc或Sphinx,可以从源代码中提取注释生成文档之外,而且还有语法支持你加入其他的文 ...
- [PHP源码阅读]array_slice和array_splice函数
array_slice和array_splice函数是用在取出数组的一段切片,array_splice还有用新的切片替换原删除切片位置的功能.类似javascript中的Array.prototype ...
- EQueue 2.0 性能测试报告
前言 最近用了几个月的时间,一直在对EQueue做性能优化.到现在总算告一段落了,现在把一些优化的结果分享给大家.EQueue是一个分布式的消息队列,设计思路基本和阿里的RocketMQ一致,只是是用 ...
- PropertyGrid控件由浅入深(一):文章大纲
Winform中PropertyGrid控件是一个非常好用的对象属性编辑工具,对于Key-Value形式的数据的处理也是非常的好用. 因为Property控件设计良好,在很小的空间内可以展示很多的内容 ...
- Android Starting Window(Preview Window)
当打开一个Activity时,如果这个Activity所属的应用还没有在运行,系统会为这个Activity所属的应用创建一个进程,但进程的创建与初始化都需要时间,在这个动作完成之前系统要做什么呢?如果 ...