Servlet工作原理

这篇具有很好参考价值的文章主要介绍了Servlet工作原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、Servlet是什么?

Servlet 类是 JavaWeb 的三大组件之一,它属于动态资源,是一组 Tomcat 提供给程序猿的 API。其作用是处理请求,服务器通常会把接收到的请求交由 Servlet 的实现类来处理。

通常Servlet的实现类需要完成:

  1. 接收请求数据;
  2. 处理请求;
  3. 完成响应。

Servlet 实现类中的方法需要由我们自己来实现,且每个 Servlet 实现类必须实现 javax.servlet.Servlet 接口,之后由服务器来创建 Servlet 类对象并调用相应的方法。

二、相关接口

ServletConfig:当前Servlet的配置信息,每一个Servlet都有其唯一对应的ServletConfig。

ServletContext:作用是在整个Web应用的动态资源之间共享数据,一个Web应用对应一个唯一的ServletContext对象, ServletContext对象在项目启动时创建,在项目卸载时销毁。

GenericServlet:通用的Servlet父类。

HttpServlet:HttpServlet继承了GenericServlet,而GenericServlet实现Servlet接口,
所以我们可以继承HttpServlet来创建一个Servlet。当通过继承HttpServlet来创建一个Servlet时,我们只需要根据要处理的请求的类型,来重写不同的方法 ①处理get请求,则重写doGet();②处理post请求,则重写doPost()

HttpServletRequest:浏览器发送给服务器的请求报文,该对象由Tomcat服务器创建,最终作为参数传递到doGet或doPost方法中,我们可以在这两个方法中直接使用。

HttpServletResponse:服务器发送给浏览器的响应报文,该对象由Tomcat服务器创建,最终作为参数传递到doGet或doPost方法中,我们可以在这两个方法中直接使用。

三、Servlet的工作流程

Servlet只有放在容器中才能执行,最常见的容器为Tomcat,Servlet工作流程如下图:
Servlet工作原理
分析如下:

  1. 浏览器向服务器发送GET请求,请求服务器ServletA
  2. 服务器上的Servlet 容器接收到该URL,根据该URL判断为Servlet请求,此时Servlet 容器将产生两个对象:请求对象(HttpServletRequest)和响应对象(HttpServletResponce)
  3. Servlet 容器对请求的 URL 进行解析并根据web.xml配置文件找到处理该请求的Servlet(ServletA),并创建一个线程A
  4. Servlet 容器将刚才创建的请求对象和响应对象传递给线程A
  5. Servlet 容器调用Servlet的service()方法
  6. service()方法根据请求类型(本示例为GET请求)调用doGet() (本示例调用doGet()) 或doPost()方法
  7. doGet()执行完后,将结果返回给Servlet 容器
  8. 线程A被销毁或被放在线程池中

四、Servlet的生命周期

Servlet是运行在Servlet容器中的,由Servlet容器来负责Servlet实例的查找、创建以及整个生命周期的管理。Servlet整个生命周期可以分为四个阶段:

  1. 类装载以及实例创建阶段:默认情况下,Servlet实例是在接收到第一个请求时进行创建,并且在以后的请求中对这个实例进行复用。
  2. 实例初始化阶段:一旦Servlet实例被创建,将会调用Servlet中的 init(ServletConfig arg) 方法,传入ServletConfig,即Servlet的相关配置信息,init()方法在整个Servlet的生命周期中只会被调用一次。
  3. 服务阶段:实例初始化后,一旦由客户端请求,Servlet 就会调用service(ServletRequest req, ServletRespose res) 方法处理数据并响应数据。
  4. 实例销毁阶段:当Servlet容器决定销毁某个Servlet时,将会调用 Servlet 实例中的destory()方法,在destory()方法中进行资源释放。一旦Servlet实例的 destory() 方法被调用,Servlet 容器将不会发任何请求给这个Servlet实例,若 Servlet 容器需要再次使用这个 Servlet,需要重新实例化该 Servlet 实例。

总结

以上就是今天要讲的内容,本文主要介绍了Servlet的工作原理,包括Servlet相关接口、Servlet的生命周期和Servlet如何和Servlet 容器配合工作,如果你觉得有收获的话,就留下你的👍吧!文章来源地址https://www.toymoban.com/news/detail-479746.html

到了这里,关于Servlet工作原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Servlet原理学习

    现在的网站架构分为 B/S架构和C/S的架构两种。 这种“B/S”结构有很多好处,维护和升级方式更简单,客户端是浏览器,基本不需要维护,只需要维护升级服务器端就可以, C/S结构是一种软件系统体系结构,也是生活中很常见的。这种结构是将需要处理的业务合理地分配到客

    2024年02月20日
    浏览(85)
  • Servlet 运行和运行原理

    使用 IDEA 创建一个 Maven 项目. 菜单 - 文件 - 新建项目 - Maven 创建好后的项目: Maven 项目创建完毕后, 会自动生成一个 pom.xml 文件. 我们需要在 pom.xml 中引入 Servlet API 依赖的 jar 包. 在中央仓库 https://mvnrepository.com/ 中搜索 “ servlet ”, 一般第一个结果就是. 选择版本(点击版本号

    2024年02月11日
    浏览(41)
  • Servlet运行原理及常见API

    要知道我们所写的 Servlet 代码是没有 main 方法的, 那他是如何运行的呢? 其实是 Tomcat 在调用 Servlet, Tomcat 其实就是一个应用程序, 是运行在用户态上的一个普通的 Java 进程. 当浏览器给服务器发送请求的时候, Tomcat 作为 HTTP 服务器, 就可以接收到这个请求, 进而会调用 Serlvet AP

    2024年02月08日
    浏览(34)
  • 【JavaWeb】Tomcat底层机制和Servlet运行原理

    🎄欢迎来到@dandelionl_的csdn博文,本文主要讲解Java web中Tomcat底层机制和Servlet的运行原理的相关知识🎄 🌈我是dandelionl_,一个正在为秋招和算法竞赛做准备的学生🌈 🎆喜欢的朋友可以关注一下,下次更新不迷路🎆  Ps: 月亮越亮说明知识点越重要 (重要性或者难度越大)🌑🌒

    2024年02月16日
    浏览(59)
  • arm中模/数转换器工作原理以及I2C工作原理

    ADC就是 模拟到数字转换器 (Analog-to-Digital Converter)的缩写。 它是一种电子设备或模块,S3C2440内部 拥有一个ADC外设 。用于将连续变化的模拟信号转换为离散的数字信号,以便数字系统(如微处理器、微控制器等)能够对其进行处理和分析。 模拟信号 :一般是指连续变化的

    2024年04月22日
    浏览(43)
  • 单片机学习笔记---AD/DA工作原理(含运算放大器的工作原理)

    目录 AD/DA介绍 硬件电路模型 硬件电路 运算放大器 DA原理 T型电阻网络DA转换器 PWM型DA转换器 AD原理 逐次逼近型AD转换器 AD/DA性能指标 XPT2046 XPT2046时序 AD(Analog to Digital):模拟-数字转换,将模拟信号转换为计算机可操作的数字信号。有时候我们也把AD叫做ADC(C是转换器conv

    2024年02月22日
    浏览(51)
  • 区块链工作原理,工作机制和详细概念

     各位小伙伴想要博客相关资料的话,关注公众号:chuanyeTry即可领取相关资料! 工作原理         区块链是一种去中心化的分布式账本技术,它的工作原理可以简单概括为以下几个步骤:         1. 交易:区块链中的交易可以是任何数字化的价值交换,例如加密货币

    2024年02月09日
    浏览(53)
  • Javac编译原理:基本结构和工作原理

    javac是一种编译器,能将一种语言规范转化成另一种语言规范 编译器通常是将便于人理解的语言规范转换成容易理解的语言规范,如C都是将源码直接编译成目标机器码,这个目标机器码是CPU直接执行的指令集合,这些指令集合也就是底层的一种语言规范,机器能够直接识别这

    2024年02月09日
    浏览(44)
  • HTTPS建立连接原理、SSL工作原理

    HTTPS与HTTP相比有什么区别? HTTPS保证安全的原理是什么? HTTPS是如何建立连接的? 巨人的肩膀 3.1 HTTP 常见面试题 | 小林coding HTTP是超文本传输协议,传输的内容是明文(HTTP1.1及之前版本)。HTTPS在TCP与HTTP层之间引入SSL/TLS安全协议,传输的报文都是加密传输的 HTTP建立连接简单,

    2024年02月02日
    浏览(86)
  • 区块链基础原理和以太坊工作原理

    当我们谈论区块链的基础原理时,我们指的是一种分布式账本技术,它采用去中心化的方式记录和验证交易。区块链的核心概念包括分布式账本、区块、共识机制和加密算法。 1.分布式账本: 2.区块链是一种分布式账本,它将数据存储在多个计算机节点上,而不是集中存储在

    2024年02月20日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包