servlet生命周期

servlet是在服务器上运行的小程序,它的主要功能的是交互式的浏览和修改数据(可以理解为“请求-响应”),
生成动态的web内容。

这是大部分资料上的解释,个人认为servlet就是服务器用来对客户端请求做出响应的工具,在这里觉得有必要说一下
它的声明周期,以便了解它的工作原理(以HttpServlet为例),主要有3个方法:

1.init()方法
在 Servlet 的生命期中,仅执行一次 init() 方法。它是在服务器装入 Servlet 时执行的。 可以配置服务器,
以在启动服务器或客户机首次访问 Servlet 时装入 Servlet。 无论有多少客户机访问 Servlet,都不会重复执行 init() 。
此方法不论覆盖或不覆盖都会执行,并确保在service()方法之前执行完毕。

2.service()方法
此方法是servlet的核心,真正响应服务器的操作就是在这里完成的。但是在HttpServlet中,官方建议不要覆盖
此的方法,只需覆盖doGet()方法、doPost()方法等,一般都是这两种。个人认为HttpServlet是servlet的的子类,
针,对http协议已经增加了doGet()、doPost()等方法,所以不必再覆盖service()方法。

3.destroy()方法
destroy() 方法也仅执行一次,即在服务器停止且卸装Servlet 时执行该方法。可以在这里执行关闭流操作或者

管理服务器资源。

简单解释一下Servlet接收和响应客户请求的过程,如图

servlet生命周期_第1张图片
 
(1)客户机将请求发送到服务器。 
(2)服务器上的Web容器实例化(装入)Servlet
(3)Web容器将请求信息发送到 Servlet。 
(4)Servlet 调用service()方法创建一个响应,并将其返回到Web容器
(5)Web容器将响应发回客户机。
(6)服务器关闭或Servlet空闲时间超过一定限度时调用destory()方法退出。


这只是目前的理解,知道不是很深刻,但相信在一段时间之后会有不同见解,任重道远!

你可能感兴趣的:(servlet生命周期工作流程)