码迷,mamicode.com
首页 > Web开发 > 详细

web.xml

时间:2017-11-07 12:22:34      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:一个   容器   zed   .com   cat   style   filter   出现   出错   

web.xml的加载过程

  当我们去启动一个WEB项目时,首先会读取项目web.xml配置文件,当这一步骤没有出错并且完成之后,项目才能正常地被启动起来。
(1)启动WEB项目的时候,容器(一般Tomcat)首先会去它的配置文件web.xml读取两个节<listener></listener>和<context-param></context-param>;
(2)紧接着,容器创建一个ServletContext(application),这个WEB项目所有部分都将共享这个上下文
(3)<context-param>上下文参数,容器以<context-param></context-param>的name作为键,value作为值,将其转化为键值对,存入ServletContext,
  故这些键值对会在这个项目中共享;
(4)<listener>监听器,容器创建<listener></listener>中的类实例,根据配置的class类路径<listener-class>来创建监听;
  在监听中会有contextInitialized(ServletContextEvent args)初始化方法,启动Web应用时,系统调用Listener的该方法,在这个方法中获得:
  ServletContext application =ServletContextEvent.getServletContext();
  context-param的值= application.getInitParameter("context-param的键");
(5)<filter>过滤器,容器会读取<filter></filter>,根据配置的class类路径来实例化过滤器
以上都是在WEB项目还没有完全启动起来的时候就已经完成了的工作。

(6)<servlet>,如果系统中有Servlet,则Servlet是在第一次发起请求的时候被实例化的,而且一般不会被容器销毁,它可以服务于多个用户的请求。
  所以,Servlet的初始化都要比上面提到的那几个要迟。

总的来说,web.xml的加载顺序是: <context-param>-> <listener> -> <filter> -> <servlet>。如果web.xml中出现了相同的元素,则按照在配置文件中出现的先后顺序来加载。

 

 

平常看到的模板文件

  schema,web.xml的模式文件是由Sun公司定义的,每个web.xml文件的根元素<web-app>中,都必须标明这个 web.xml使用的是哪个模式文件。其它的元素都放在<web-app></web-app>之中。其中<display-name></display-name>定义了web应用名称。

 技术分享

 

 详细参考:(1)http://blog.csdn.net/believejava/article/details/43229361

      (2)http://www.cnblogs.com/hellojava/archive/2012/12/28/2835730.html


 

web.xml

标签:一个   容器   zed   .com   cat   style   filter   出现   出错   

原文地址:http://www.cnblogs.com/xdyixia/p/7798212.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!