位置: IT常识 - 正文

Servlet工作原理(servlet工作原理和生命周期)

发布时间:2024-01-11
Servlet工作原理 文章目录一、Servlet是什么?二、相关接口三、Servlet的工作流程四、Servlet的生命周期总结一、Servlet是什么?

推荐整理分享Servlet工作原理(servlet工作原理和生命周期),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:servlet的工作过程,servlet的工作流程,servlet工作原理图,servlet 工作原理,servlet 工作原理,servlet工作原理图,servlet 工作原理,servlet工作原理图,内容如对您有帮助,希望把文章链接给更多的朋友!

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

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

接收请求数据;处理请求;完成响应。

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

二、相关接口

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

Servlet工作原理(servlet工作原理和生命周期)

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工作流程如下图: 分析如下:

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

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

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

以上就是今天要讲的内容,本文主要介绍了Servlet的工作原理,包括Servlet相关接口、Servlet的生命周期和Servlet如何和Servlet 容器配合工作,如果你觉得有收获的话,就留下你的👍吧!

本文链接地址:https://www.jiuchutong.com/zhishi/292346.html 转载请保留说明!

上一篇:深度学习实战——不同方式的模型部署(CNN、Yolo)

下一篇:波来古市附近的Chu Dang Ya火山,越南嘉来 (© Quang Ngoc Nguyen/Alamy)(波来古市在哪里)

  • 小规模纳税人500万以内免税
  • 实际发生的坏账准备可以税前扣除吗
  • 发行股票支付给承销商的发行费用计入
  • 认证不过的进项税调出分录
  • 制作费开票属于什么科目
  • 应付中转是什么科目
  • 租房违约金怎么计算,怎么写
  • 个人平均缴费基数
  • 残疾人士有哪些
  • 企业所得税的优点有哪些
  • 商业折扣应交税费
  • 应交税费消费税分录
  • 出售拆迁补偿住房违法吗
  • 工程围挡做法
  • 广告业与服务业哪个好
  • 借入款项的来源包括哪三个
  • 公司进项销项税差异较大
  • 企业报销发票都需要什么
  • 土地款印花税计入无形资产吗
  • 公司车辆过户给公司
  • 税收预测表怎么填写
  • 奖金个人所得税筹划
  • 当月发的奖金怎么扣个税
  • 保理利息开具增值税专用发票
  • 能够影响现金流的因素有
  • 收到苗木发票怎么做账
  • 预缴税款会计处理分录
  • PHP:spl_autoload()的用法_spl函数
  • php img
  • linux多网卡聚合
  • 税法的构成要素中,()是税法最基本的要素
  • php魔术函数
  • 二手房交易需缴哪些税
  • html无刷新跳转
  • Laravel5.5新特性之友好报错以及展示详解
  • php实现页面浏览量
  • 为什么税前利润加可抵扣暂时性差异
  • 怎样部署
  • 7z命令行详解
  • javascriptjs
  • 企业盘盈的固定资产其核算的会计科目是
  • 如何登记现金明细账
  • 投标保证金退还时间是在什么文件的规定的
  • 织梦下载站源码带采集
  • 月底分红
  • 闭包怎么求
  • 如何对php网站页面进行修改
  • 织梦如何给栏目增加缩略图
  • 个体户核定征收超过了怎么办
  • 基本户和一般户的往来分录
  • 应收账款的账面价值是什么
  • 小规模纳税人开专票税率是多少?
  • 房地产成本的概念
  • 库存周转率中销量怎么算
  • 企业营业外支出是什么意思
  • 员工预支工资属于什么科目
  • 发票监制章是什么章图片
  • 直租业务可以抵房租吗
  • 增加委托代理人
  • 应收帐款坏账处理
  • 微软新品发布
  • windows地图导航
  • 如何创建mac系统安装盘
  • linux c命令
  • 微软发布ChatGPT功能
  • opengl绘图
  • js给表格添加一行
  • Node.js中的全局变量有哪些
  • career和calling的区别
  • python怎么理解
  • javascript 代码
  • android主流分辨率
  • js输出100以内能被5整除的数
  • 网页编辑器手机版
  • androidcontext传值
  • shell脚本计算字符串长度
  • 征管法第六十三条的内容
  • 耕地占用税免税项目需要计入计税依据吗
  • 税务师怎么备考才能考过
  • 红股派息是赠送股票的意思吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号