Servlet的一生
一.呱呱坠地
前些天我们探究了Servlet的底层结构,今天我们来了解一哈Servlet传奇的一生—Servlet运行周期
和我们一样Servlet生命周期大致经历这几个部分, 嗷嗷待哺—>蹒跚学步–>努力奋斗回馈社会–>卸甲归田–>颐养天年,当然专业一点:
笔者手动画了一份完整的servlet生命周期如上图:现在我们通过源码验证:
可以发现所包含的方法和上图一致
二.服务
-
我们重点看一下service方法其实他有两个形参:
ServletRequest
和ServletResponse
所以大致猜测我们平时使用的doGet()/doPost()方法会不会就是从他这里来的,我们姑且这么认为(事实上就是如此,迫不及待的童鞋可以看:浴火重生) Talk is Cheap,Show Me You Code!
ok我们可以试试:
我使用web3.0方法建立一个servlet,并重写init() 和destory() 方法:
启动tomcat:运行如下
后面无论请求多少次servlet都会不载调用init 方法():
- 之后servlet调用service方法去执行具体的doGet()/doPost()方法
- 假设service执行完毕,进行
销毁
操作:这一步需要注意:
- 销毁是关闭server而不是console的按钮:关闭控制台意味着你是直接把电脑咋了,根本不知道电脑是怎么坏的,我们要看过程,必须是关闭server的按钮:
-
关闭tomcat后,自动调用destroy方法如下
三.未完…
由此,我们知道 servelt一开始被加载后,会立刻执行init方法,并且只执行一次,关闭tomcat后,会自动调用destory方法,进行卸载,最终交给jvm销毁对象
好啦,今天就到这里啦,过年不易,感谢这个病毒让我能够百忙之中,抽出时间来提升自己…