描述Servlet的生命周期

什么时候创建?创建时做了什么?
当需要Servlet来处理请求时,web容器会检查缓存中是否存在对应的Servlet,如果没有就创建,如果缓存中存在了,那么就直接拿来使用。所以说,Servlet是在接收到第一个处理请求时被创建的,也可以通过配置load-on-startup的值为1设置Servlet随服务器启动就创建对象。(特殊业务需求才使用程序启动自动创建Servlet对象,否则会增加服务器的启动时间,消耗性能)
当web容器创建Servlet成功后,会且只会调用一次init()方法,在后续每次需要这个Servlet处理请求时不再调用,可以利用init对Servlet进行初始化操作,web容器在创建Servlet对象时,会创建ServletConfig对象(代表Servlet配置),并在调用init方法时,把该对象当作参数传递进来,通过该对象可以获取Servlet的信息,所以调用init方法时可以通过ServletConfig获取Servlet的信息。每次服务器接收到一个Servlet请求时,服务器会产生一个新的线程,根据http请求类型,调用对应的doGet、doPost方法进行处理;
什么时候销毁?销毁时做了什么?
当web服务器被关闭时,会把Servlet进行销毁。在Servlet生命周期结束时会且只会调用一次destroy()方法把Servlet销毁,关闭数据库连接,停止后台线程,释放资源等。我们可以重写destroy()方法处理被销毁之前的业务。在调用destroy方法后,Servlet对象会被标记为垃圾回收,等待jvm虚拟机回收。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值