【Servlet】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.
五,原文链接
【Servlet】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中配置servlet时,拦截请求/和/*的区别。
关于servlet的拦截设置,之前看了好多,说的都不太清除,明白. 最近明白了一些,总的来说就是保证拦截所有用户请求的同时,放行静态资源. 现整理如下: 一.我们都知道在基于Spring的Applic ...
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...
- Web.xml中设置Servlet和Filter时的url-pattern匹配规则
一.servlet容器对url的匹配过程: 当一个请求发送到servlet容器的时候,容器先会将请求的url减去当前应用上下文的路径作为servlet的映射url,比如我访问的是http://loca ...
- web.xml中的主要元素说明(listener, filter, servlet)
web.xml中加载的顺序为:context-param ---> listener ---> filter ---> servlet. listener:主要针对的是对象的操作,如 ...
- web.xml 中的listener、filter、servlet 加载顺序及其【配置详解】
在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...
- 解决servlet在web.xml中的路径跳转问题
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" ...
随机推荐
- ElasticSearch无法启动
安装了ElasticSearch5.5.1后,每次启动服务的时候,都是启动了一下就自动停止了.查看了一下EventViewer, 错误信息如下: Application: elasticsearch. ...
- [Spring Boot] Introduce to Mockito
We have the implemetion: @SpringBootApplication public class MockitoDemoApplication { public static ...
- iOS 生成pem证书
openssl pkcs12 -in Certificates.p12 -out Certificates.pem -nodes 需要通过终端命令将这些文件转换为PEM格式:openssl p ...
- KindEditor-编辑器配置参数属性
KindEditor-源码分析 通过使用KE.show(config)方法即可将编辑器添加到文档中.下面是一段源码: KE.show = function(args) { KE.init(ar ...
- SQL Server临时表
[]SQL Server临时表]()https://docs.microsoft.com/zh-cn/sql/relational-databases/tables/temporal-tables)
- WIP 002- Rating info page design
Please design the screen When Permitted Subdivision selected Yes hide Flood Zone, otherwise show it.
- html中文显示乱码的处理方法
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 1. ht ...
- Struts2学习笔记三:深入Action
一:Action中获取参数值 在Servlet中,我们通过doGet()/doPost()方法中的参数,获取request/response对象,然后提取参数值: 处理请求结束后,有数据需要携带返回客 ...
- 【DB2】清理日志文件db2diag.log
在数据库运行过程中,会产生很多的日志,进而使日志文件db2diag.log变大 当占用磁盘空间太大的时候,应该怎么处理呢? 方法一: db2inst1@Linux:/db2home/db2inst1/ ...
- .NET网址
1.爱整理:http://www.aizhengli.com/