java程序设计开发,JavaWeb Servlet之Servlet生命周期学习笔记,初始化、服务和销毁。理解 Servlet 生命周期有助于我们更好地管理资源、优化性能和处理异常。
JavaWeb Servlet 之 Servlet 生命周期学习笔记
一、Servlet 生命周期概述
Servlet 生命周期描述了 Servlet 从创建到销毁的整个过程,主要包含三个阶段:初始化、服务和销毁。理解 Servlet 生命周期有助于我们更好地管理资源、优化性能和处理异常。
二、Servlet 生命周期阶段及对应方法
(一)初始化阶段
- 方法:
init(ServletConfig config)
- 描述:Servlet 容器在创建 Servlet 实例后,会调用
init
方法进行初始化操作。该方法只会被调用一次,通常用于加载配置信息、初始化资源等。ServletConfig
对象包含了 Servlet 的配置信息,如初始化参数等。
(二)服务阶段
- 方法:
service(ServletRequest request, ServletResponse response)
、doGet(HttpServletRequest request, HttpServletResponse response)
、doPost(HttpServletRequest request, HttpServletResponse response)
等 - 描述:当客户端发送请求时,Servlet 容器会调用
service
方法处理请求。service
方法会根据请求的类型(GET、POST 等)调用相应的doXxx
方法。例如,对于 GET 请求,会调用doGet
方法;对于 POST 请求,会调用doPost
方法。这些方法可以被多次调用,以处理多个客户端请求。
(三)销毁阶段
- 方法:
destroy()
- 描述:当 Servlet 容器决定销毁 Servlet 实例时,会调用
destroy
方法。该方法只会被调用一次,通常用于释放资源,如关闭数据库连接、释放文件句柄等。
三、实际应用案例
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;
import java.io.PrintWriter;
@WebServlet("/lifecycleServlet")
public class LifecycleServlet implements Servlet {
private ServletConfig config;
// 初始化方法
@Override
public void init(ServletConfig config) throws ServletException {
this.config = config;
System.out.println("Servlet 初始化,加载配置信息...");
// 模拟加载配置信息
String initParam = config.getInitParameter("exampleParam");
System.