Servlet生命周期的概念说明: Servlet生命周期指一个Servlet创建到销毁的过程, 我们将这个过程称之为"Servlet生命周期"
每一个Servlet都拥有以下处理过程
- Servlet初始化后调用init()方法
- Servlet调用service()方法来处理客户端的请求
- Servlet销毁前调用destroy() 方法
- 最后---Servlet 是由 JVM 的垃圾回收器进行垃圾回收的
init() 方法
init方法在第一次创建Servlet时被调用
后续用户调用此Servlet时,无需再次运行init()方法
当用户第一次调用Servlet对应URL时, Servlet被创建, 我们也可以指定Servlet在服务器中第一次启动时加载
当用户调用一个 Servlet 时,就会创建一个 Servlet 实例,
每一个用户请求都会产生一个新的线程,
适当的时候移交给 doGet 或 doPost 方法
init() 方法简单地创建或加载一些数据,
这些数据将被用于 Servlet 的整个生命周期
例:init 方法
public void init() throws ServletException { // 初始化代码... }
service()方法
service() 方法是执行实际任务的主要方法
Servlet容器(即Web 服务器)调用service()方法来处理来自客户端(浏览器)的请求
将格式化数据返回给客户端
当服务器收到Servlet请求时,
服务器会产生一个新的线程并调用服务
service() 方法中会检查http的请求类型(GET、POST、PUT、DELETE等),
并调用相应的doGet、doPost、doPut,doDelete 等方法
例:
service方法定义
public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException{ }
service()方法由web容器调用
service 方法然后调用doGet,doPost,doPut,doDelete等方法 所以我们只需将相应的代码放入doGet()及doPost()方法中
doGet()方法
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Servlet 代码 }
doPost()方法
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Servlet 代码 }
destroy()方法
destroy() 方法只会被调用一次
在Servlet生命周期结束时被调用
destroy() 方法可以让您的Servlet 关闭数据库连接
停止后台线程
把 Cookie 列表或点击计数器写入到磁盘
并执行其他类似的清理活动
servlet对象被标记为垃圾回收
destroy方法定义如下所示:
public void destroy() { // 终止化代码... }
转自:http://java265.com/Servlet/202108/176.html