简单完整讲述Servlet生命周期

简单完整讲述Servlet生命周期servlet 生命周期过程 1 加载 web xml 文件 当前只去解析 xml 文件 知道 servlet 的存在 此时还没有去创建 servlet 声明 servlet servlet servlet 的别名 servlet name first servlet name servlet class com etime servlet FirstServlet servlet class servlet

Servlet生命周期过程

详解:

1.加载web.xml文件——当前只去解析xml文件,知道servlet的存在,此时还没有去创建servlet。

<!-- 声明servlet --> <servlet> <!-- servlet的别名 --> <servlet-name>first</servlet-name> <servlet-class>com.etime.servlet.FirstServlet</servlet-class> </servlet> <!-- 将servlet与URL绑定 --> <!-- servlet映射部分 --> <servlet-mapping> <servlet-name>first</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> 

2.创建构造函数——通过构造函数创建servlet对象
在第一次访问servlet对应的URL时,执行FirstServlet构造函数,对servlet对象进行创建。

 public FirstServlet() { 
    System.out.println("正在创建servlet对象"); } 

3.调用init方法——通过init方法初始化servlet

 @Override public void init(ServletConfig config) throws ServletException { 
    System.out.println("正在初始化servlet对象"); } 

4.访问URL需要servlet提供服务,执行servlet方法——通过service或者doGet、doPost提供服务

 @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    //请求发来的参数 String name = request.getParameter("name"); //从前台发来的参数放在这个字符串里 String html = "

hello!"

+name+"!
"
; System.out.println("返回浏览器的响应数据为:"+html);//这一步是为了更明了的显示运行步骤 //服务器向浏览器返回的输出流 PrintWriter out = response.getWriter(); //通过out对象将html发送回浏览器 out.println(html);

5.销毁方法——在重启或关闭时自动对servlet进行销毁

 @Override public void destroy() { 
    System.out.println("正在销毁servlet对象"); } 

总结:

完整的servlet生命周期流程:
1.加载web.xml文件。
2.通过构造函数创建servlet对象。
3.通过init方法初始化servlet。
4.通过service,或者doGet、doPost提供服务。
5.在重启或关闭时自动对servlet进行销毁。










注意:通过这个例子我们可以知道tomcat全局中有且只有一个servlet对象,当一个servlet被访问时,之后的所有请求都被这一个servlet进行处理。

如图所示:
步骤2、3、4效果图
当再次访问浏览器时,步骤2、3就不再执行了,直接执行第四步service方法。




在这里插入图片描述

service提供的效果如下:

在这里插入图片描述

修改代码后tomcat会自动的重启,对修改后的servlet进行重新加载,所以在重启的时候会自动进行destroy方法

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/208417.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午11:38
下一篇 2026年3月19日 上午11:39


相关推荐

  • k8s 超详细总结,面试必问

    k8s 超详细总结,面试必问一个目标 容器操作 两地三中心 四层服务发现 五种 Pod 共享资源 六个 CNI 常用插件 七层负载均衡 八种隔离维度 九个网络模型原则 十类 IP 地址 百级产品线 千级物理机 万级容器 相如无亿 K8s 有亿 亿级日服务人次 一个目标 容器操作 Kubernetes k8s 是自动化容器操作的开源平台 这些容器操作包括 部署 调度和节点集群间扩展 具体功能 自动化容器部署和复制 实时弹性收缩容器

    2026年3月17日
    2
  • jetty配置文件_jetty服务日志配置

    jetty配置文件_jetty服务日志配置jetty9配置contextPath说明:目录结构:webapps——-demo.war——-demo.xmldemo.xml文件内容//webapps/demo.war

    2025年12月14日
    7
  • matlab 加权回归估计_Matlab:地理加权回归基本操作「建议收藏」

    matlab 加权回归估计_Matlab:地理加权回归基本操作「建议收藏」%————————————————————————–%计量经济学服务中心《空间计量经济学及Matlab应用》%————————————————————————–Vname=VariableGeometri…

    2022年10月6日
    6
  • snippet编写学习

    snippet编写学习杂选 VISUAL contents 表示在这块时 会自动选中这块内容作用于全部文件 all snippetoptio 选项作选项解释 b 只有当 trigger 在行首才有 i 默认情况下 trigger 是自成一个单词才有用 加了这个选项 即使是在单词中 只要出现了这几个字母 就可以使用比如 aaatrigger 也可以使用 w 与 i 相反 只有是一个单词 前面是空格 才可以使用 r 支持正则表达 t 在这里 的其他功能失效 就当成空

    2026年3月19日
    1
  • python自动化办公:excel篇,从此做表不加班。

    python自动化办公:excel篇,从此做表不加班。表格讲解表格格式表格分为 工作簿 工作表 单元格如图 整个文件就是一个工作簿 下面的 zhengjiang power 和 sheet1 为工作表 xlrd xlwt 读写表格

    2026年3月16日
    2
  • Modbus功能码详解

    Modbus功能码详解Modbus 功能码详解

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号