描述Servlet的生命周期
考点:考察求职者对Servlet生命周期的掌握。
出现频率:★★★★
【面试题解析】
Servlet的生命周期如下。
(1)装载Servlet。这项操作一般是动态执行的,然而,服务器通常会提供一个管理的选项,用于在服务器启动时强制装载和初始化特定的Servlet。
(2)服务器创建一个Servlet的实例。
(3)服务器调用Servlet的init()方法
(4)一个客户端的请求到达服务器。
(5)服务器创建一个请求对象。
(6)服务器创建一个响应对象。
(7)服务器激活Servlet的service()方法,请求对象和响应对象作为service()方法的参数。
(8)service()方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息。
(9)service()方法使用响应对象的方法,将响应传回服务器,最终到达客户端。service()方法可能激活其他方法以处理请求,例如doGet()、doPost()或程序员自己开发的新的方法。
对于更多的客户端请求,服务器创建新的请求对象和响应对象,仍然激活此Servlet的service()方法,将这两个对象作为参数传递给它,但无须再次调用init()方法。一般Servlet只初始化一次,当服务器不再需要Servlet时(一般在服务器关闭时),服务器调用Servlet的destroy()方法。如图1所示,显示了Servlet的生命周期。
图1 Servlet的生命周期
参考答案:Web容器加载Servlet,生命周期开始。通过调用Servlet的init()方法进行Servlet的初始化。通过调用service()方法实现,根据请求的不同调用不同的方法。结束服务,Web容器调用Servlet的destroy()方法。