Servlet生命周期 、Filter生命周期、Listering(监听器)总结

本文详细介绍了Servlet、Filter及监听器的生命周期,包括它们的加载、初始化、服务及销毁过程。Servlet在实例化后调用init()方法初始化,通过service()方法处理客户端请求,最后在容器关闭时调用destroy()方法。Filter在服务器启动时创建并初始化,客户端访问时执行doFilter方法。监听器则在特定事件发生时自动触发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Servlet生命周期简述

(1)加载和实例化 当Servlet容器启动或客户端发送一个请求时,Servlet容器会查找内存中是否存在该Servlet实例,若存在,则直接读取该实例响应请求;如果不存在,就创建一个Servlet实例。

(2) 初始化 实例化后,Servlet容器将调用Servlet的init()方法进行初始化(一些准备工作或资源预加载工作)。

(3)服务 初始化后,Servlet处于能响应请求的就绪状态。当接收到客户端请求时,调用service()的方法处理客户端请求,HttpServlet的service()方法会根据不同的请求 转调不同的doXxx()方法。

(4)销毁 当Servlet容器关闭时,Servlet实例也随时销毁。其间,Servlet容器会调用Servlet 的destroy()方法去判断该Servlet是否应当被释放(或回收资源)

后面就直接用注解来进行配置

 

Filter生命周期 

当服务器启动,就会创建Filter对象(随着Tomcat的启动而创建),并调用init()方法,只调用一次

当访问资源时,路径与filter拦截路径匹配,会执行Filter中的doFilter方法,这个方法是真正拦截操作的方法。

当服务器关闭时,会调用Filter中的destroy方法来进行销毁操作。

 

监听器

Listering (监听)  其实就是跟我们的闹钟一样,在上面时候自动触发,

2个监听

第一个监听是普通类实现httpSessionBingDinglistering

它有2个方法,第一个是当我们的对象保存session里面,即,req.getSession.setAttribute是触发valueBound方法。valueUnBound方法也就是当前对象不在session时调用这个方法,第一种是会话失效是失效,,第二种方法是调用remove方法时失效,这个方法不用注解配置,因为他本身不用在web.xml里配置

 

第二个监听器:实现httpSessionlistering,他同样有2个方法,第一个是当你的session创建的时候触发sessonCreate方法,也就是打开网页的时候就会触发,第二个是当你的session销毁的时候调用sessionDestroy方法,开发之中一般用第二种监听器,它的局限性更好,只要一个注解就解决@WebListen

 

转载于:https://www.cnblogs.com/binghuaZhang/p/10780864.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值