JavaWeb - 理(Listener)、发(Filter)、师(Servlet) 执行顺序/生命周期

网友投稿 263 2022-11-19

JavaWeb - 理(Listener)、发(Filter)、师(Servlet) 执行顺序/生命周期

一、执行顺序

启动的顺序:Listener->Filter->Servlet简单记为:理(Listener)发(Filter)师(Servlet)执行的顺序不会因为三个标签在配置文件中的先后顺序而改变。同类别的定义顺序影响优先级,越靠前,优先级越高。如果web.xml中配置了,初始化顺序:context-param > Listener > Filter > Servlet待更新...

二、生命周期

Listener生命周期:一直从程序启动到程序停止运行。ServletRequestListener:每次访问一个Request资源前,都会执行requestInitialized()方法,方法访问完毕,都会执行requestDestroyed()方法。HttpSessionListener:每次调用request.getSession(),都会执行sessionCreated()方法,执行session.invalidate()方法,都会执行sessionDestroyed()方法。ServletRequestAttributeListener:每次调用request.setAttribute()都会执行attributeAdded()方法,如果set的key在request里面存在,就会执行attributeReplacerd()方法,调用request.removeAttribute()方法,都会执行attributeRemoved()方法。Filter生命周期:程序启动调用Filter的init()方法(一旦触发,但是永远只调用一次),程序停止调用Filter的destroy()方法(永远只调用一次,服务器移除或者彻底关闭,并且在Servlet destory() 之后),doFilter()方法每次的访问请求如果符合拦截条件都会调用(程序第一次进入一个新的Servlet,会运行在Servlet调用init()方法后执行),但是不管第几次,都在调用doGet(),doPost()方法之前。Servlet生命周期:程序第一次访问(而不是启动Tomcat时调用init()),会调用servlet的init()方法初始化(只执行一次),每次程序执行都会根据请求调用doGet()或者doPost()方法,程序停止调用destory()方法(服务器移除或者彻底关闭)。待更新...

三、代码

Filter & Servlet 的情况

CharactorFilter init... // 启动Tomcat服务器HttpServlet init... // 第一次进入该ServletCharactorFilter doFilter... service...CharactorFilter doFilter... // 第二次进入该Servletservice...CharactorFilter doFilter... // 第三次进入该Servletservice...HttpServlet destroy... // 服务器移除或关闭CharactorFilter destroy...Ps:过滤器匹配:“/*”

待更新...

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:485电表有哪些技术特点
下一篇:ZCMU - 1166: 忠哥的dp(II)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~