什么是servlet的生命周期?
servlet运行在容器中,没有main()方法。因此整个生命都是由容器来控制的。主要有init()、service()、destory()这三个方法来改变servlet的状态。
其中 init()是声明周期的起点,用于创建或者打开任何与servlet相关的资源以及执行初始化工作。
service()是servlet中用于处理客户端请求的方法,根据请求类型将请求分发到doGet()或者doPost()等方法。
destory()释放任何在init()方法中打开的与servlet相关的资源。
具体的声明周期可以分为5个阶段:
1)加载
容器通过类加载器使用servlet类对应的文件来加载servlet。
2)创建
通过servlet的构造函数来创建一个servlet实例。
3)初始化
通过调用init()方法。注意:init()方法只会被调用一次。
4)处理客户的请求
通过调用service()方法。
5)卸载
容器在卸载servlet之前需要调用destroy()方法,让servlet自己释放其占用的系统资源,一旦destroy()方法被调用,容器就不会再向这个servlet发送任何消息了。注意:destroy()方法也指挥被调用一次。