Servlet-执行流程&生命周期

一、思考

在上一篇文章Servlet基本概念中,我们抛出了一个问题:我们定义一个类实现了Servlet接口后,是谁创建了这个类的对象呢,又是谁调用了类中的service方法呢?本篇我们将介绍Servlet的执行流程。

二、执行流程

根据ip与port,将找到Web服务器;javaweb是Web工程的路径;hello则是该Servlet的路径。

我们只创建了Servlet类,并没有new一个Servlet对象,而客户端访问的ip+port实际是Web服务器程序。因此,Servlet对象是由Web服务器创建的,service方法也是由Web服务器调用的。

三、Servlet生命周期

我们经常听到生命周期这个词语:生命周期就是指一个对象从被创建到被销毁的整个过程。

Servlet运行在Servlet容器(即Web容器)中 ,其生命周期由容器来管理,分为4个阶段:

  1. 加载和实例化:默认情况下,当Servlet第一次被访问时,由容器创建Servlet对象
  2. 初始化:在Servlet实例化之后,容器将调用Servlet的init()方法初始化这个对象,完成一些如加载配置文件、创建连接等初始化的工作。该方法只会执行一次
  3. 请求处理每次请求Servlet时,Servlet容器都会调用Servlet的service()方法对请求进行处理
  4. 服务终止:当需要释放内存或者容器关闭时,容器就会调用Sevrlet实例的destory()方法完成资源的释放。在destory()方法调用之后,容器会释放这个Servlet实例,该实例随后会被Java垃圾收集器回收。

在WebServlet注解中:可以添加loadOnStartup参数,参数值可以是负整数、0、正整数。当参数值是负整数时,这个Servlet在第一次被访问时创建Servlet对象;当参数值0或正整数时,服务器启动时创建Servlet对象。数字越小优先级越高。

相关推荐

  1. servlet生命周期

    2024-01-13 20:04:03       8 阅读
  2. nuxt2生命周期执行顺序

    2024-01-13 20:04:03       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-13 20:04:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-13 20:04:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-13 20:04:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-13 20:04:03       20 阅读

热门阅读

  1. docker配置nginx

    2024-01-13 20:04:03       35 阅读
  2. 问题在于qsize是常量

    2024-01-13 20:04:03       36 阅读
  3. 程序员大学毕业后如何发展?

    2024-01-13 20:04:03       40 阅读
  4. C/C++利用指针输出二维数组元素

    2024-01-13 20:04:03       40 阅读
  5. Pinia store如何做模块化

    2024-01-13 20:04:03       36 阅读
  6. 学习记录之JVM

    2024-01-13 20:04:03       42 阅读
  7. 《清醒思考的艺术》读书笔记

    2024-01-13 20:04:03       31 阅读
  8. 三国杀移动版武将台词大全-神

    2024-01-13 20:04:03       42 阅读
  9. ios 推流 拉流

    2024-01-13 20:04:03       44 阅读
  10. P1094 [NOIP2007 普及组] 纪念品分组

    2024-01-13 20:04:03       29 阅读
  11. 企业数字化的另一种解读

    2024-01-13 20:04:03       32 阅读
  12. Codeforces Round 916 (Div. 3)补题

    2024-01-13 20:04:03       41 阅读
  13. Python爬虫---Scrapy架构组成

    2024-01-13 20:04:03       44 阅读