Servlet的生命周期

举报
穆雄雄 发表于 2022/12/11 13:30:42 2022/12/11
【摘要】 大家好,欢迎来到雄雄的小课堂,今天给大家分享的是“Servlet的生命周期” 什么是Servlet的生命周期?所谓生命周期,指的就是Servlet从被定义,到执行使用,再到毁灭的整个过程。 Servlet的生命周期分为哪几部分?Servlet初始化后调用init()方法。Servlet 调用 service() 方法来处理客户端的请求。Servlet 销毁前调用 destroy() 方法。 ...

大家好,欢迎来到雄雄的小课堂,今天给大家分享的是“Servlet的生命周期”

什么是Servlet的生命周期?

所谓生命周期,指的就是Servlet从被定义,到执行使用,再到毁灭的整个过程。

Servlet的生命周期分为哪几部分?

  1. Servlet初始化后调用init()方法。
  2. Servlet 调用 service() 方法来处理客户端的请求。
  3. Servlet 销毁前调用 destroy() 方法。

接下来我们来详细看看各个生命周期的方法:

Init()方法:
Init方法只要创建了,只调用一次,后续将不再调用,代码如下:

public void init() throws ServletException {
    System.out.println("执行Init方法初始化");
    super.init();
  }

service() 方法
service() 方法是执行实际任务的主要方法。Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端。

每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。代码如下:

@Override
  protected void service(HttpServletRequest arg0, HttpServletResponse arg1)
      throws ServletException, IOException {
    System.out.println("进入service方法");
    super.service(arg0, arg1);
  }

doGet() 和 doPost() 方法是每次服务请求中最常用的方法。下面是这两种方法的特征。

doGet() 方法
GET 请求来自于一个 URL 的正常请求,或者来自于一个未指定 METHOD 的 HTML 表单,它由 doGet() 方法处理。

public void doGet(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {

    System.out.println("进入doget方法");
  }

doPost() 方法
POST 请求来自于一个特别指定了 METHOD 为 POST 的 HTML 表单,它由 doPost() 方法处理。

public void doPost(HttpServletRequest request, HttpServletResponse response)
      throws ServletException, IOException {
    
  }

destroy() 方法
destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以让您的 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收。destroy 方法定义如下所示:

@Override
  public void destroy() {
    System.out.println("进入destroy方法");
    super.destroy();
  }

今天的分享就这些,最后欢迎关注公众号==小雄雄的小课堂==

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。