Servlet的生命周期是怎么回事?
Servlet的生命周期有三个:
1.初始化时期
在启动Tomcat后,客户机首次访问Servlet时,tomcat装入和实例化Servlet,仅执行一次init()方法。无论有多少客户机访问 Servlet,都不会重复执行init()。这里通常进行一些初始化的操作,如数据库的连接。init()方法不能反复调用,一旦调用就是重装载 servlet。直到服务器调用destroy方法卸载servlet后才能再调用。
2.Servlet的执行时期
在服务器装载初始化servlet后,servlet就能够无限循环往复的处理客户端的请求。在前面的例子中,我们用doXXX方法来处理每个客户的请求,且发回相应的响应。
3.Servlet结束时期
Servlets一直运行到他们被服务器卸载。比如,在eclipse的情况下,当我们点击服务器窗口的红色按钮时,就关停Tomcat,这时 Servlet的destroy方法就会被tomcat调用。通常,大家在destroy方法里收回在init()方法中初始化的资源,如关闭数据库的连 接等。
例:4.1
package com;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class ServletHello1 extends HttpServlet {
public ServletHello1() {
System.out.println("constructor");
}
public void init() throws ServletException {
System.out.println("init");
}
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws IOException {
System.out.println("doGet");
}
public void destroy() {
System.out.println("des");
FileWriter in;
try {
in = new FileWriter("c:\\initial.txt");
in.write("destroy");
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
第一次访问servlet时,输出结果如下:
更多内容请见原文,原文转载自:https://blog.csdn.net/qq_44594371/article/details/103155757
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义