抢小孩糖吃 web容器listener,filter,servlet初始化顺序

启动:
com.hava.webapp.listener.InitListener init…
com.hava.webapp.filter.InitFilter init…
com.hava.webapp.serlvet.InitSerlvetinit…
访问:
com.hava.webapp.filter.InitFilter doFilter…
URI=/InitServlet
com.hava.webapp.serlvet.InitSerlvet service…
销毁:
com.hava.webapp.serlvet.InitSerlvet destroy…
com.hava.webapp.filter.InitFilter destroy…
com.hava.webapp.listener.InitListener destroy…
Disconnected from server

详细代码见:
http://www.oschina.net/code/snippet_52678_44994

时间: 2024-08-01 21:27:31

抢小孩糖吃 web容器listener,filter,servlet初始化顺序的相关文章

web.xml之context-param,listener,filter,servlet加载顺序及其周边

先以加载spring为例子看看加载顺序的作用: Spring加载可以利用ServletContextListener 实现,也可以采用load-on-startup Servlet 实现,但比如filter 需要用到 bean ,但加载顺序是: 先加载filter 后加载spring,则filter中初始化操作中的bean为null:所以,如果过滤器中要使用到 bean,此时就可以根据加载顺序listener>filter>servlet,将spring 的加载 改成 Listener的方式.

web.xml 之contextParam,listener,filter,servlet的加载顺序

先以加载spring为例子看看加载顺序的作用: Spring加载可以利用ServletContextListener 实现,也可以采用load-on-startup Servlet 实现,但比如filter 需要用到 bean ,但加载顺序是: 先加载filter 后加载spring,则filter中初始化操作中的bean为null:所以,如果过滤器中要使用到 bean,此时就可以根据加载顺序listener>filter>servlet,将spring 的加载 改成 Listener的方式.

web容器调用Filter和Servlet顺序学习

web容器调用Filter和Servlet顺序学习   一直对Filter和Servlet在哪里被web容器调用迷惑,后查看tomcat源码,揭开了其面纱.1. 下面是一个简单的时序图: 2. 对上面时序图中用到的主要类进行分析 1)         ApplicationFilterChain类,有两个主要函数,下面是省略过会的代码 public voiddoFilter(request, response) {//暴露在外面的调用接口 if( Globals.IS_SECURITY_ENAB

web.xml 相关 listener filter servlet

突然发现知识忘记了···记一下··· 配置节的加载顺序: context-param -> listener -> filter -> servlet (同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的) Filter:  在请求一个资源或者从一个资源返回信息的时候执行过滤操作的插件(形如权限控制) javax.servlet.Filter接口 对用户请求的预处理    Filter不是一个servlet,它不能产生一个response,它能够在一个r

浅谈Listener、Filter、Servlet初始化顺序

Listener.Filter.Servlet都有一个初始化的过程,对应的方法分别为: contextInitialized(ServletContextEvent arg0); // Listener init(FilterConfig filterConfig); // Filter init(ServletConfig config); // Servlet 那么它们的初始化顺序是什么呢? Listener > Filter > Servlet TestServlet.java: pac

spring在web容器启动时执行初始化方法

需求:在tomcat启动时开启一个定时任务. 想法:容器启动时执行方法,最容易想到的就是servlet中可以配置load-on-startup,设置一个正整数也就可以随容器一起启动. 问题:上面的方法很好,但是由于定时任务需要去操作数据库,而项目采用了spring的依赖注入来管理对象,而servlet并不受Spring的管理.若此时在servlet中注入Spring管理的对象,则会报错:javax.naming.NameNotFoundException: Name com.test.InitS

java web.xml listener servlet 和filter的加载顺序

在项目中总会遇到一些关于加载的优先级问题,近期也同样遇到过类似的,所以自己查找资料总结了下,下面有些是转载其他人的,毕竟人家写的不错,自己也就不重复造轮子了,只是略加点了自己的修饰. 首先可以肯定的是,加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter. 最终得出的结论是:listener -> filter -> servlet 同时还存在着这样一种配置节:context-param,它用于向 Servle

web.xml中关于Servlet、Filter、Listener的配置

(一)web.xml不同元素的加载顺序 加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter. web.xml 的加载顺序是:ServletContext -> context-param -> listener -> filter -> servlet ,而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的 (二)web.xml文件详解 (2.1) 首先是sche

WEB容器启动——web.xml加载详解

最近在看spring的源码,关于web.xml文件在容器(Tomcat.JBOSS等)启动时加载顺序问题很混乱,通过搜集资料,得出以下的结论: 1.加载顺序与它们在 web.xml 文件中的先后顺序无关.即不会因为 filter 写在 listener 的前面而会先加载 filter.最终得出的结论是:context-param -> listener -> filter -> servlet; 容器首先会去它的配置文件web.xml读取两个节点:  <context-param&