Servlet(3) -生命周期

Servlet的生命周期

1.新建一个java类HelloServlet,并通过注解的方式
在这里插入图片描述
2.体验Servlet的生命周期
在Servlet接口中有五个方法;
(a)init()方法
(b)getServletConfig()方法
(c)service()方法
(d)getServletInfo()方法
(e)destroy()方法
(1)在上面五个方法中,(a)©(e)是属于Servlet生命周期的方法,分别是初始化Servlet、执行Servlet的业务方法以及销毁Servlet。
我们分别重写(a)©(e)方法:
在这里插入图片描述
(2)编译运行,并在打开的浏览器页面地址内输入我们自定义的地址,回车,观察IDEA控制台的输出信息;
在这里插入图片描述
再次刷新浏览器页面,观察IDEA控制台的输出信息:
在这里插入图片描述
我们发现,在浏览器(客户端)发出请求后,后端会在Servlet容器中查找是否含有我们的目标对象(HelloServlet对象),没有的话就会创建该对象,同时调用init()方法来完成初始化操作,然后再执行service()方法
在浏览器再次发出请求后,后端同样会在Servlet容器中查找是否含有我们的目标对象(HelloServlet对象),若有,就不需要再次创建对象并初始化,直接调用已有对象的service方法即可
(3)关闭
点击关闭当前运行的程序
在这里插入图片描述
控制台输出信息;
在这里插入图片描述
此时Servlet的生命周期结束

对象的创建

在浏览器(客户端)首次发出请求后,后端会在Servlet容器中创建HelloServlet对象,但是我们并没有在程序中使用new关键字去创建对象,那么这个对象是怎么创建的呢?
是通过Tomcat创建的,使用的是反射原理
我们在使用基于XML的方法时,在添加的标签1中的第二行代码中,详细的写出了当前类的全类名,Tomcat正式通过这个拿到了当前类的构造函数
(1)我们在类HelloServlet中创建一个无参的构造函数
在这里插入图片描述
重新编译运行,在浏览器中发起请求,观察IDEA控制台输出信息
在这里插入图片描述
刷新浏览器,多次发出请求
在这里插入图片描述
可以看到,HelloServlet对象的创建只有一次

总结

(1)当浏览器访问Servlet的时候,Tomcat会查询当前Servlet的实例化对象是否存在,如果不存在,则通过反射机制动态创建对象,如果存在就直接执行第(3)步
(2)调用init方法完成初始化操作
(3)调用service方法完成业务逻辑操作
(4)当关闭Tomcat时,会调用destory方法,释放当前对象所占用的资源

Servlet的生命周期方法

包括四个:无参构造方法、init、service、destory
(1)无参构造器:只调用一次,创建对象
(2)init只调用一次,初始化对象
(3)service调用n次,执行业务方法
(4)destory只调用一次,卸载对象

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值