Servlet生命周期,指的就是Servlet的出生到结束。分别经历了加载、初始化、服务、销毁。
这些全部由Web容器来控制,而初始化、服务、销毁我们用户是可以自己去添加内容的,然后由Web容器调用
对应在我们代码中实现:
我们启动服务器,访问页面后,看服务器出现了哪些内容
服务器起始,没有访问内容
我们点击页面
查看服务器
说明有两个方法被执行了
然后我们再提交一次页面
查看服务器
说明service又被执行了一次,但是初始化没有被执行,也就是说初始化只在第一次被执行了
销毁是由Web容器控制的,当关闭Web容器或者设置了Servlet超时时间,销毁会被调用的。
页面是post,为什么doPost没有执行?
这里首先需要知道一个内容:Servlet服务执行时,先执行Service,再执行doGet和doPost,但为什么我们的代码没有执行呢?
那是因为service方法在父类里面有一个转向作用,你重写了父类的方法,却没有调用doGet和doPost,所以你没有继承转向这个作用,那我们如何更改呢?
我们调用下父类就可以了
查看结果
如果你同时重写了service和doGet, doPost方法