当前位置: 首页 > news >正文

Servlet生命周期

Servlet生命周期

服务器上

创建阶段:tomcat根据请求来创建一个servlet对象。

Tomcat会根据URL来找到servlet虚拟路径,通过web.xml找到对应的serlvet类,tomcat会分配一块内存空间作为servlet容器来存放创建出来的这些servlet对象,

(创建是通过Class cla=class.forName(“类名”),cla.newInstance();创建servlet对象。)

初始阶段:调用init方法初始化servlet对象,且只会被调用一次

调用阶段:自动调用service方法,响应其所有方法,可以被调用多次

销毁阶段:调用destroy方法(通过Tomcat的reload/关闭tomcat/关闭计算机);

Servlet的每次提供服务实际都是调用service方法。只不过service方法内部会根据客户端的请求方式再决定调用doGet还是doPost。

初始化阶段

在以下时刻Servlet容器装载Servlet

1.Servlet启动时自动装载某些Servlet,实现方法:在web.xml文件中的中添加1

2.在Servlet容器启动后,客户端首次向Servlet发送请求

3.Servlet类文件被更新,重新装载Servlet

Servlet被装载后,Servlet容器创建一个Servlet实例调用Servlet的init方法进行初始化,在整个生命周期中,init方法只会被调用一次

调用阶段

对于客户的请求到达Servlet,Servlet容器会创建特定于这个请求的ServletRequest对象和ServletResponse对象,然后会调用Servlet的service方法。然后service方法从ServletRequest对象中获取客户的请求信息,处理该请求,并通过ServletResponse对象向客户端返回响应信息。

销毁阶段

当web应用被终止,或者Servlet容器终止运行,或者Servlet容器重新装载Servlet,Servlet容器会调用Servlet的destroy方法,去释放Servlet所占用的资源。

调用destroy方法的三种方式:通过Tomcat的Reload方式调用destroy,关闭Tomcat服务,关闭计算机。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • WiFi通信——STM32通过ESP8266-01S与阿里云通信
  • Elasticsearch:Golang ECS 日志记录 - Logrus
  • 总结
  • Redis在SpringBoot中遇到的问题:预热,雪崩,击穿,穿透
  • kafka基础介绍
  • 卷与nfs实现多台主机容器之间的数据共享
  • 十、Docker版Redis集群搭建
  • DP学习——状态模式
  • idea将普通项目转换为maven项目
  • 使用JAVA代码实现生成二维码
  • windows网络应急排查
  • 以线程完成并发的UDP服务端
  • 使用kali对操作系统和网络服务类型进行探测
  • 列举excel中调整行高列宽的五种方法
  • Telegram曝零日漏洞,可伪装成视频攻击安卓用户
  • avalon2.2的VM生成过程
  • ES2017异步函数现已正式可用
  • Java反射-动态类加载和重新加载
  • JS专题之继承
  • oschina
  • Selenium实战教程系列(二)---元素定位
  • Vue ES6 Jade Scss Webpack Gulp
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 初识 webpack
  • 基于 Babel 的 npm 包最小化设置
  • 精彩代码 vue.js
  • 漂亮刷新控件-iOS
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 突破自己的技术思维
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 一些关于Rust在2019年的思考
  • 优化 Vue 项目编译文件大小
  • 与 ConTeXt MkIV 官方文档的接驳
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 容器镜像
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • ​一些不规范的GTID使用场景
  • #etcd#安装时出错
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (+4)2.2UML建模图
  • (1)Android开发优化---------UI优化
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (11)MATLAB PCA+SVM 人脸识别
  • (分类)KNN算法- 参数调优
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .md即markdown文件的基本常用编写语法
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例