JavaWeb项目 Web.xml文件详解(启动顺序)
来源:互联网 发布:手机淘宝图片不清晰 编辑:程序博客网 时间:2024/06/06 03:02
(一) web.xml加载过程(步骤)
首先简单说一下,web.xml的加载过程。
当我们去启动一个WEB项目时,容器包括(JBoss、Tomcat等)首先会读取项目web.xml配置文件里的配置,当这一步骤没有出错并且完成之后,项目才能正常地被启动起来。
l 启动WEB项目的时候,容器首先会去它的配置文件web.xml读取两个节点:
<listener></listener>和<context-param></context-param>。
l 紧接着,容器创建一个ServletContext(application),这个WEB项目所有部分都将共享这个上下文。
l 容器以<context-param></context-param>的name作为键,value作为值,将其转化为键值对,存入ServletContext。
l 容器创建<listener></listener>中的类实例,根据配置的class类路径<listener-class>来创建监听,在监听中会有contextInitialized(ServletContextEvent args)初始化方法,启动Web应用时,系统调用Listener的该方法,在这个方法中获得:
ServletContext application =ServletContextEvent.getServletContext();
context-param的值= application.getInitParameter("context-param的键");
得到这个context-param的值之后,你就可以做一些操作了。
l 举例:你可能想在项目启动之前就打开数据库,那么这里就可以在<context-param>中设置数据库的连接方式(驱动、url、user、password),在监听类中初始化数据库的连接。这个监听是自己写的一个类,除了初始化方法,它还有销毁方法,用于关闭应用前释放资源。比如:说数据库连接的关闭,此时,调用contextDestroyed(ServletContextEvent args),关闭Web应用时,系统调用Listener的该方法。
l 接着,容器会读取<filter></filter>,根据指定的类路径来实例化过滤器。
l 以上都是在WEB项目还没有完全启动起来的时候就已经完成了的工作。如果系统中有Servlet,则Servlet是在第一次发起请求的时候被实例化的,而且一般不会被容器销毁,它可以服务于多个用户的请求。所以,Servlet的初始化都要比上面提到的那几个要迟。
总的来说,web.xml的加载顺序是: <context-param>-> <listener> -> <filter> -> <servlet>。其中,如果web.xml中出现了相同的元素,则按照在配置文件中出现的先后顺序来加载。
对于某类元素而言,与它们出现的顺序是有关的。以<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>类似,此处不再赘述。
阅读全文
0 0
- JavaWeb项目 Web.xml文件详解(启动顺序)
- JavaWeb项目 Web.xml文件详解(标签含义)
- javaweb web.xml文件详解
- web.xml文件中的配置启动顺序
- web.xml启动顺序
- web.xml启动顺序
- web.xml启动顺序
- web.xml启动顺序
- web.xml启动顺序
- web.xml启动顺序
- java web项目启动加载顺序之web.xml部分
- 【Java】Eclipse手动生成JavaWeb项目web.xml文件
- 【Java】Eclipse手动生成JavaWeb项目web.xml文件
- 【Java】Eclipse手动生成JavaWeb项目web.xml文件
- Eclipse手动快捷生成JavaWeb项目web.xml文件
- JavaWeb里面web.xml配置部署描述符文件详解
- web.xml文件加载顺序 一、 1 、启动一个 WEB 项目的时候, WEB 容器会去读取它的配置文件 web.xml ,读取 <listener> 和 <context-param>
- java-web.xml启动顺序
- centos 7上nginx+uwsgi 性能调优
- NPOI导出excel表格某些单元格或者列报未将对象引用设置到对象的实例
- ST集成传感器方案实现电子罗盘功能
- caffe基础-09solver超参数文件配置
- 完全图解VS2017安装过程并演示VS2017创建Linux项目和调试
- JavaWeb项目 Web.xml文件详解(启动顺序)
- [HDU]2222 Keywords Search
- LeetCode(27)--Remove Element
- PostgreSQL的转储与恢复,超大库转储,压缩转储
- Django学习笔记四:阿里云服务器购买和配置nginx
- EFLAGS寄存器中状态标志(Status Flags)小结
- Linux下用户组、文件权限详解
- 新建项目报错,Failed to execute appt 错误,导致R文件报错的解决办法
- Spring Bean的作用域