【Javaweb】Servlet工作原理和生命周期


Java Servlet技术简称Servlet技术,是Java开发Web应用的底层技术

一、 关键词

  • Servlet
    Servlet是JavaEE规范的一种,主要是为了扩展Java作为Web服务的功能。为了方便第三方准守这种规范,Sun公司(现在Oracle公司)提供了一系列相关的接口,即Servlet API。
  • Servlet应用
    直接或间接实现了Servlet接口并且需要运行在Servlet容器中的Java程序,主要用来生成动态的Web页面。Servlet应用不能独立于运行,必须被部署到Servlet容器。
  • Servlet容器
    Servlet容器(Servlet引擎)是Web服务器或应用程序服务器的一部分,用于在发送的请求和响应之上提供网络服务,解码基于MIME的请求,格式化基于MIME的响应,即Servlet容器用来接收客户端请求,处理协议、请求内容等,初始化Servlet实例(只需要第一次初始化)并调用Servlet应用的对应方法,然后Servlet应用返回处理结果,经Servlet容器再返回到用户客户端。
  • Tomcat容器
    Tomcat容器,又叫应用服务器,也有人称之为Servlet容器。其实,本质上,Tomcat容器具有Servlet容器的功能,是Servlet容器的一种开源实现,但是它又不仅仅只是Servlet容器。

在这里插入图片描述

关键字的有关内容参考CSDN博主「姠惢荇者」,点击查看原文


二、 工作原理

  • Servlet接口定义了Servlet与servlet容器之间的契约:Servlet容器将Servlet类载入内存,产生Servlet实例并调用具体方法
    tips:在⼀个应用程序中,每种Servlet类型只能有⼀个实例】

  • 用户发出请求,Servlet容器调用Servlet的Service()方法、传入ServletRequest对象和ServletResponse对象
    tips:ServletRequest对象和ServletResponse对象都已由Servlet容器(如TomCat)封装好,程序员可以直接使用这两个对象】

  • ServletRequest中封装当前的Http请求,ServletResponse表示当前用户的Http响应,程序员只需直接操作ServletResponse对象就能把响应轻松的发回给用户

  • 对于每⼀个应用程序,Servlet容器创建⼀个ServletContext对象,此对象封装了上下文(应用程序)的环境详情
    tips:每个应用程序只有⼀个ServletContext,每个Servlet对象只有⼀个封装Servlet配置的ServletConfig对象】


三、 生命周期

Servlet是一个单例

Servlet生命周期,可被定义为从创建到毁灭的整个过程

扫描二维码关注公众号,回复: 17065798 查看本文章
  • 实例化 – 创建servlet实例
  • 初始化 – init()
    只调用一次,在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用
  • 处理请求 – service()
    执行实际任务的主要方法,Servlet 容器(即 Web 服务器)调用 service() 方法来处理来自客户端(浏览器)的请求,并把格式化的响应写回给客户端
  • 服务终止 – destory()
    只被调用一次,在 Servlet 生命周期结束时被调用
    可以使 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动,在调用后,servlet 对象被标记为垃圾回收
  • GC垃圾回收(可看作是服务终止的一部分)

如图描述:
在这里插入图片描述

具体过程:
在这里插入图片描述


四、 架构图

第一个到达服务器的 HTTP 请求被委派到 Servlet 容器

Servlet 容器在调用 service() 方法之前加载 Servlet

Servlet 容器处理多个线程产生的多个请求,每个线程执行单一Servlet实例的 service() 方法

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_50609545/article/details/120295027