说一说Servlet的生命周期?
Servlet的生命周期主要由以下三个阶段组成:初始化,服务和销毁。
- 初始化(Initialization): 当一个Servlet被载入到内存中时(例如,第一次访问或者服务器启动并且在web.xml中配置了load-on-startup),Servlet容器(例如Tomcat)就会调用Servlet的
init()
方法进行初始化。此方法在Servlet的生命周期中只被调用一次。 -
服务(Servicing): 一旦Servlet被初始化,对其的每一次请求(例如HTTP请求)Servlet容器都会根据请求类型调用相应的方法(例如
doGet()
,doPost()
等)。这个阶段会重复执行,每次有新的请求时都会被调用。 -
销毁(Destruction): 当Servlet容器需要从内存中移除Servlet实例时(例如服务器关闭或者手动卸载Servlet),就会调用Servlet的
destroy()
方法。它也只在Servlet的生命周期中被调用一次。
举一个应用场景的例子,假设我们有一个用于处理用户登录请求的LoginServlet
。当服务器第一次启动或者第一次收到登录请求时,LoginServlet
会被初始化,调用init()
方法。然后,每当有用户发送登录请求时,LoginServlet
就会调用 doPost()
方法处理这个请求。最后,当服务器关闭或者我们不再需要LoginServlet
时,就会调用destroy()
方法,销毁这个Servlet。