转载自  web.xml 组件加载顺序

在配置项目组件的过程中, 了解Tomcat加载组件顺序很有必要。 例如某些框架如Quartz的集群功能需要数据库的支持, 数据库的加载肯定要在框架组件加载之前。

经过查阅和Debug发现, web.xml组件加载顺序为:context-param -> listener -> filter -> servlet(同类则按编写顺序执行)。

web.xml常用组件解析:

<web-app><display-name></display-name>
WEB应用的名字 <description></description>
WEB应用的描述    <context-param></context-param>
context-param元素声明应用范围内的初始化参数<!-- 指定spring配置文件位置 -->
<context-param>    <param-name>contextConfigLocation</param-name>    <param-value>
<!--加载多个spring配置文件 -->
/WEB-INF/applicationContext.xml, /WEB-INF/action-servlet.xml    </param-value>
</context-param>    <filter></filter>
过滤器将一个名字与一个实现javax.servlet.Filter接口的类相关联    <filter-mapping></filter-mapping>
一旦命名了一个过滤器,就要利用filter-mapping元素把它
与一个或多个servlet或JSP页面相关联<listener></listener>
事件监听程序在建立、修改和删除会话或servlet环境时得到通知。
Listener元素指出事件监听程序类。    如Log4j这个广泛使用的监听<!-- 定义SPRING监听器,加载spring -->
<listener>    <listenerclass>org.springframework.web.context.ContextLoaderListener</listener-class>
</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类型,
则mime-mapping元素提供这种保证  <welcome-file-list></welcome-file-list>
指示服务器在收到引用一个目录名而不是文件名的URL时,
使用哪个文件(其实就是欢迎界面或者说入口界面一般为index.*)   <error-page></error-page>
在返回特定HTTP状态代码时,或者特定类型的异常被抛出时,
能够制定将要显示的页面。    <taglib></taglib>
对标记库描述符文件(Tag Libraryu Descriptor file)指定别名。
此功能使你能够更改TLD文件的位置,
而不用编辑使用这些文件的JSP页面。<resource-env-ref></resource-env-ref>
声明与资源相关的一个管理对象。 <resource-ref></resource-ref>
声明一个资源工厂使用的外部资源。    <security-constraint></security-constraint>
制定应该保护的URL。它与login-config元素联合使用 <login-config></login-config>
指定服务器应该怎样给试图访问受保护页面的用户授权。
它与sercurity-constraint元素联合使用。    <security-role></security-role>
给出安全角色的一个列表,这些角色将出现在servlet元素内的
security-role-ref元素的role-name子元素中。
分别地声明角色可使高级IDE处理安全信息更为容易<env-entry></env-entry>
声明Web应用的环境项</web-app>

web.xml 组件加载顺序相关推荐

  1. 加载顺序_Java的web.xml组件加载顺序

    在配置项目组件的过程中, 了解Tomcat加载组件顺序很有必要. 例如某些框架如Quartz的集群功能需要数据库的支持, 数据库的加载肯定要在框架组件加载之前. 经过查阅和Debug发现, web.x ...

  2. web.xml 配置 加载顺序

    web.xml 的加载顺序是:context-param -> listener -> filter -> servlet . 过滤器执行顺序是根据filter-mapping ,不 ...

  3. web.xml加载顺序

    2019独角兽企业重金招聘Python工程师标准>>> 一 1.启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和< ...

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

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

  5. JAVA Web.xml 加载顺序

    web.xml加载过程(步骤): 1.启动WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> ...

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

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

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

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

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

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

  9. web.xml中的所有配置,Listener和Filter的加载顺序

    web.xml 中的listener. filter.servlet 加载顺序及其详解 在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人 ...

最新文章

  1. 【译】关于机器学习的11个开源工具
  2. mysql5717开发设置怎么调回来_MYSQL5.7.17设置初始密码(转)
  3. hibernate操作mysql中文乱码
  4. 关于禁止程序重复启动的另一种需要与实现《转》
  5. 关于android中postDelayed方法的讲解
  6. sharesdk短信验证码的集成
  7. 图像处理-STB图片读写
  8. python自动化测试环境搭建_selenium+python自动化测试之环境搭建
  9. LeetCode(657)——机器人能否返回原点(JavaScript)
  10. Windows 8 Directx 开发学习笔记(八)要有光
  11. CImage类 from http://blog.sina.com.cn/s/blog_487547aa0100an6k.html
  12. 跨平台 webapp 开发技术之 Hybrid App
  13. Get value from agent failed: cannot connect to [[192.168.186.130]:10050]: [113]No route to host
  14. 初学python数据结构-切片
  15. 终于,字节跳动要取消大小周了,我 1.7 万人的票圈都快炸了!
  16. Qt删除文件和文件夹
  17. dingding(钉钉)+sonar(代码质量管理工具)通知并打包成docker容器运行
  18. 简单操作破解PDF加密文件
  19. 单链表的创建--从零开始
  20. 《剑侠情缘网络版》开发回顾

热门文章

  1. qt制作一个画板_如何直接用Sketch制作动画|Sketch插件|
  2. python字符串截取方法_如何使用python语言中的字符串方法截取字符串
  3. [mybatis]动态sql_内置参数_parameter_databaseid
  4. [C++STL]stack容器用法介绍
  5. [蓝桥杯2016决赛]路径之谜
  6. java 操作日志设计_日志系统新贵 Loki,确实比笨重的ELK轻
  7. word List 47
  8. ImportError: dynamic module does not define module export function (PyInit__caffe)
  9. Java修炼之路——基础篇——平台无关性
  10. 【NOI2013】树的计数【树的遍历】【期望】