- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
web.xml中的listener、filter、servlet加载顺序及其详解
原文出处:/blog/399668
在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰。
??????? 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关。即不会因为 filter 写在 listener 的前面而会先加载 filter。最终得出的结论是:listener - filter - servlet
??????? 同时还存在着这样一种配置节:context-param,它用于向 ServletContext 提供键值对,即应用程序上下文信息。我们的 listener, filter 等在初始化时会用到这些上下文中的信息,那么 context-param 配置节是不是应该写在 listener 配置节前呢?实际上 context-param 配置节可写在任意位置,因此真正的加载顺序为:context-param - listener - filter - servlet
??????? 对于某类配置节而言,与它们出现的顺序是有关的。以 filter 为例,web.xml 中当然可以定义多个 filter,与 filter 相关的一个配置节是 filter-mapping,这里一定要注意,对于拥有相同 filter-name 的 filter 和 filter-mapping 配置节而言,filter-mapping 必须出现在 filter 之后,否则当解析到 filter-mapping 时,它所对应的 filter-name 还未定义。web 容器启动时初始化每个 filter 时,是按照 filter 配置节出现的顺序来初始化的,当请求资源匹配多个 filter-mapping 时,filter 拦截资源是按照 filter-mapping 配置节出现的顺序来依次调用doFilter() 方法的。
????????servlet 同 filter 类似,此处不再赘述。
?????? 由此,可以看出,web.xml 的加载顺序是:context-param - listener - filter - servlet?,而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的。
?
web.xml文件详解
Xml代码??
Web.xml常用元素???
web-app???
display-name/display-name定义了WEB应用的名字???
description/description?声明WEB应用的描述信息???
??
context-param/context-param?context-param元素声明应用范围内的初始化参数。???
filter/filter?过滤器元素将一个名字与一个实现javax.servlet.Filter接口的类相关联。???
filter-mapping/filter-mapping?一旦命名了一个过滤器,就要利用filter-mapping元素把它与一个或多个servlet或JSP页面相关联。???
listener/listenerservlet?API的版本2.3增加了对事件监听程序的支持,事件监听程序在建立、修改和删除会话或servlet环境时得到通知。???
?????????????????????Listener元素指出事件监听程序类。???
servlet/servlet?在向servlet或JSP页面制定初始化参数或定制URL时,必须首先命名servlet或JSP页面。Servlet元素就是用来完成此项任务的。???
servlet-mapping/servlet-mapping?服务器一般为servlet提供一个缺省的URL:http://host/webAppPrefix/servlet/ServletName。???
??????????????但是,常常会更改这个URL,以便servlet可以访问初始化参数或更容易地处理相对URL。在更改缺省URL时,使用servlet-mapping元素。???
??
session-config/session-config?如果某个会话在一定时间内未被访问,服务器可以抛弃它以节省内存。???
??????????可通过使用HttpSession的setMaxInactiveInterval方法明确设置单个会话对象的超时值,或者可利用session-config元素制定缺省超时值。???
??
mime-mapping/mime-mapping如果Web应用具有想到特殊的文件,希望能保证给他们分配特定的MIME类型,则mi
您可能关注的文档
最近下载
- GB_T 15587-2023 能源管理体系 分阶段实施指南(OCR).pdf VIP
- SMS-C-15各岗位船员安全管理职责要点 .pdf VIP
- 风机设备吊装专项施工方案(终版).doc VIP
- 东芝电梯CV620电梯电气图纸.pdf VIP
- 美团地推销售流程.pptx
- 关于贯彻落实中央八项规定实施细则的办法.docx VIP
- 一种采用LC-MS检测低分子肝素中寡糖含量的方法及应用.pdf VIP
- 2023-2024学年四川省泸州市泸县五中初中教育共同体八年级(下)期中数学试卷(含详解).pdf VIP
- 钢筋原材料试验自动计算.xls VIP
- 农产品食品检验员职业技能竞赛理论考试题库(含答案).docx VIP
文档评论(0)