目录结构:

contents structure [+]
  1. url-pattern的三种写法
  2. servlet匹配原则
  3. filter匹配原则
  4. 语法错误的后果
  5. 参考文章

一.url-pattern的三种写法

  1. 精确匹配。以"/"开头,加上servlet名称。

    Java代码 
    1. /ad
  2. 路径匹配。以"/"开头,加上通配符"*"。
    Java代码 
    1. /*
  3. 扩展名匹配。以通配符"*"开头,加上扩展名。
    Java代码 
    1. *.action

二.servlet匹配规则

  1. 先精确匹配,再路径匹配。servlet-mapping1:<url-pattern>/ad</url-pattern>,servlet-mapping2:<url-pattern>/*</url-pattern>。当一个请求http://localhost:8080/ad来的时候,servlet-mapping1匹配到,不再用servlet-mapping2匹配。
  2. 路径匹配的时候,先最长路径匹配,再最短路径匹配。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匹配。
  3. 至于扩展名匹配,就是单独于精确匹配和匹配的一类了。struts2的扩展名就是.action,所以http://localhost:8080/ad.action会被servlet-mapping:<url-pattern>*.action</url-pattern>匹配到。
  4. 以上都找不到servlet,就用默认的servlet,配置为<url-pattern>/</url-pattern>。

三. filter匹配规则

  1. 顺着web.xml定义的filter顺序匹配,匹配到了就开始filter。
  2. 有几个就匹配几次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.

五,原文链接

点我查看原文

转载于:https://www.cnblogs.com/HDK2016/p/6226960.html

【Servlet】web.xml中url-pattern的用法相关推荐

  1. 绝对路径${pageContext.request.contextPath}用法及其与web.xml中Servlet的url-pattern匹配过程...

    以系统的一个"添加商品"的功能为例加以说明,系统页面为add.jsp,如图一所示: 图一  添加商品界面 系统的代码目录结构及add.jsp代码如图二所示: 图二   系统的代码目 ...

  2. web.xml 中的listener、 filter、servlet 加载顺序及其详解(转)

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  3. web.xml中filter,servlet和listener区别

    2019独角兽企业重金招聘Python工程师标准>>> 1.Filter与Servlet的区别和联系,点击查看详情 2.Filter的执行顺序与实例,点击查看详情 Filter 实现 ...

  4. [转]web.xml 中的listener、 filter、servlet 加载顺序及其详解

    2019独角兽企业重金招聘Python工程师标准>>> 转自:http://zhxing.iteye.com/blog/399668 在项目中总会遇到一些关于加载的优先级问题,近期也 ...

  5. web.xml 中的listener、 filter、servlet 加载顺序及其详解

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  6. (转)web.xml 中的listener、 filter、servlet 加载顺序及其详解

    转: https://www.cnblogs.com/Jeely/p/10762152.html web.xml 中的listener. filter.servlet 加载顺序及其详解 一.概述 1. ...

  7. web.xml中的主要元素说明(listener, filter, servlet)

    web.xml中加载的顺序为:context-param ---> listener ---> filter ---> servlet. listener:主要针对的是对象的操作,如 ...

  8. web.xml 中的listener、 filter、servlet 加载顺序及其详解

    在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是 ...

  9. JavaWeb的web.xml中context-param、listener、filter、servlet加载顺序(重点)

    文章目录 结论 分析 1.context-param 2.listener 3.filter 4.servlet 总结 结论 先说结论,在JavaWeb的web.xml中的加载顺序为: context ...

  10. java获取web.xml 参数_解析web.xml中在Servlet中获取context-param和init-param内的参数

    web.xml里面可以定义两种参数:1.application范围内的参数,存放在servletcontext中,在web.xml中配置如下: context/param avalible durin ...

最新文章

  1. 【es6】谈谈Promise
  2. Form表单中的元素 控件集
  3. 深入理解 Tomcat(八)源码剖析之连接器
  4. php input框圆角样式,CSS如何实现边框圆角
  5. js array 删除指定元素_Array 原型方法源码实现解密
  6. Linux音频驱动-ASOC(ALSA System on Chip)
  7. Fiddler的安装与使用
  8. windows下编译librtmp库
  9. echart 图谱_echart——关系图graph详解
  10. kgma格式改flac_网易云,酷狗,酷我独有格式转换mp3或flac
  11. 示波器探头对测量可能引起的10种影响
  12. 怎样将计算机和电视机连接网络,家里怎么连接网络到电视机,让电脑和电视都可以上网。...
  13. wordpress html5视频播放插件,WordPress插件DPlayer支持m3u8视频HTML5播放
  14. 天才少年稚晖君 | 【保姆级教程】个人深度学习工作站配置指南
  15. 企业微信机器人脚本python_python3 企业微信机器人发送图片
  16. CSS子元素撑满父元素(height: 100%无效)
  17. 微信小程序wepy自定义card控件封装
  18. ISCC——部分题wp
  19. 使用hinfric和hinflmi函数设计H∞输出反馈控制器(含实现程序)
  20. MyBioSource丨艾美捷抗eIF4E抗体

热门文章

  1. form提交xml文件
  2. 正则表达式-找出电话号码
  3. HIbernate Session 线程安全的问题
  4. Diagnostics: File file:/tmp/spark-***/__spark_libs__***.zip does not exist
  5. nohup启动java命令导致dubbo无法注册
  6. mysql主从复制浅析(一)
  7. #pragma pack与sizeof union
  8. 从输入URL到页面加载的全过程
  9. 基于图灵api的Python机器人
  10. 《Microduino实战》——2.2 兼容Arduino系列产品