Servlet生命周期是怎样的
Servlet的生命周期是指从Servlet被创建到被销毁的整个过程。这个过程由Servlet容器(如Tomcat)管理,并涉及几个关键的方法调用。以下是Servlet生命周期的详细步骤:
-
加载和实例化:
- 当Servlet容器启动时,它会根据配置文件(如web.xml)或注解(如@WebServlet)加载Servlet类。
- 容器创建Servlet实例,调用其无参构造方法。
-
初始化:
- 初始化阶段由Servlet的
init()
方法表示,该方法只调用一次。 - 在
init()
方法中,Servlet可以进行一些初始化操作,如加载配置文件、建立数据库连接等。 init()
方法通过ServletConfig对象获取配置信息。
- 初始化阶段由Servlet的
-
请求处理:
- 一旦初始化完成,Servlet就处于服务状态,等待客户端的请求。
- 当客户端发送请求时,Servlet容器会创建一个
HttpServletRequest
对象和一个HttpServletResponse
对象,并调用Servlet的service()
方法。 service()
方法根据请求的类型(如GET、POST等)调用相应的doGet()
、doPost()
等方法。- 每个请求都会产生一个新的线程来处理,确保并发处理。
-
服务终止:
- 当Servlet容器决定移除Servlet或关闭Web应用时,会调用Servlet的
destroy()
方法。 - 在
destroy()
方法中,Servlet可以释放资源,如关闭数据库连接、停止后台线程等。 - 调用
destroy()
方法后,Servlet实例会被标记为垃圾回收,等待被回收器回收。
- 当Servlet容器决定移除Servlet或关闭Web应用时,会调用Servlet的