位置: IT常识 - 正文

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

编辑:rootadmin
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)(波来古市在哪里)

  • 亏损企业股权转让
  • 税控盘服务费全额抵扣分录
  • 预提费用税务处理
  • 城建税计税方法
  • 烟叶税怎样计算
  • 分公司注销需要总公司法人实名确认吗
  • 购买工业用地税费
  • 定额发票验旧后怎么报税
  • 介质申报和网络申报的区别
  • 企业经营活动所需的资金的来源渠道有
  • 行政事业单位资产管理工作总结
  • 委托加工白酒消费税计税依据
  • 银行存款的会计处理方法
  • 私车公用产生的过路费开个人发票还是公司发票
  • 服务业预收款项怎么确认收入
  • 资产负债表应交税费从哪取数
  • 开具正数发票中如何体现扣款
  • 委托加工物资加工完毕验收入库后作为
  • 汇算清缴残保金填哪里
  • 企业销售矿产是否需要缴纳资源税呢?
  • 公司贷款买车后影响公司收购吗
  • 房地产行业零税率发票
  • 公司的资产负债表包括
  • 多交企业所得税怎么申请抵缴
  • 收到工会经费返还属于现金流量表哪
  • 代扣代缴税款的完税凭证抵扣期限
  • 事业单位自由资金怎么入账
  • 去年的发票今年怎么做会计分录
  • php怎么把数组变成字符串
  • win10网页打不开但是有网
  • 二级资本债是什么意思
  • lnmgr.exe是什么
  • 处置工程物资取得净收益
  • typescript ??
  • 微信小程序自定义tabbar
  • php对接公众号支付
  • 行政性罚款怎么结转损益
  • mysql select语法的使用
  • 弥补以前年度亏损是季度申报的时候做吗
  • 一次还本付息债券定价公式
  • 背书是什么含义
  • 进项税金抵扣
  • 价内税与价外税的计算公式
  • 企业股权转让收入会计处理
  • 产品销售的账务处理办法
  • 财产租赁合同印花税计税依据
  • 预付账款属于资产项目吗
  • 收据能作为抵减成本吗
  • 实收资本调账怎么调
  • 已经支付的预付款 银行能更改为货到付款吗
  • 应付职工薪酬账户贷方登记的是
  • 建账的基本原则是什么
  • 总分类账户与明细分类账户的关系
  • 批量修改 sql
  • win7系统cmd命令大全
  • mac怎么设计网页
  • linux系统ftp服务
  • ctd module
  • win7系统无法启动怎么解决
  • win10version最新版本
  • win7系统怎么修改开机密码
  • 系统右键菜单
  • android app启动过程
  • js实例教程
  • jquery实现图片懒加载
  • sed 处理多行
  • cocos2dx 3.2 Http网络连接,curl 库的介绍
  • js网页自动化
  • Android Fragment学习笔记(2) ----使用ListFragment显示列表(上)
  • dos 输出重定向
  • 怎么用bootstrap搭建网站
  • rom开发是做什么的
  • jQuery Easyui Tabs扩展根据自定义属性打开页签
  • js阻止浏览器后退
  • 宁波银行税务贷简介
  • 盘锦兴隆台区供暖电话
  • 电子税务局如何解绑办税人员
  • 四川省地方税务局公告2018年第1号
  • 定额发票作废了还能报销吗
  • 注册会计师人员名单
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设