serlvet--servlet的生命周期_请描述一个serlvet的过程-程序员宅基地

技术标签: java  servlet  后端  

前言

当浏览器向服务器发送请求时,服务器会依据浏览器发送的请求调用相应的servlet类进行处理,然后把响应结果返回给浏览器。那么当服务器通过tomcat容器调用相应的servlet类完成任务时,整个过程是如何的呢?即这个serlvet的生命周期,它包括四个阶段 实例化 – 初始化 — 运行 — 销毁。

一、实例化阶段

在第一个阶段中,容器会调用serlvet的构造函数对servlet类进行实例化,那么什么时候进行实例化呢?

1.浏览器提出请求时

一般情况下,当浏览器向服务器对应应用程序中包含的该servlet类第一次发送请求时,容器会调用构造函数对此servlet进行实例化,产生唯一的一个实例,如果后面再次发生请求,将反复调用该实例。即实例化 只做一次,而且也只产生一个实例。

2.应用程序在容器中部署时,自动进行实例化。

某些serlvet类需要应用程序部署时自动进行实例化,例如过滤器等。有在配置文件中添加相应标签和加入注解式两种方式。

(1)配置文件web.xml

在配置文件serlvet标签添加load-on-startup标签,例如:

<servlet
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_51286391/article/details/109526251

智能推荐

C++语法篇之 Templates 模板_c++ templates-程序员宅基地

文章浏览阅读1.5k次。假如我们需要设计X和Y两个列表,这两个列表具有相似的代码唯一的不同是数据类型,则在C++中实现有如下的选择:共同的基类:在大多数场景并不适用,只是为了一个列表去提炼基类也没必要。 克隆代码:分别对X 和 Y 类型定义各自的列表,能够保证类型安全但是后期维护成本高。 空列表:定义一个没有类型的列表 (void(*))。缺点是类型不安全。除此之外,我们还可以用Template来实现,Template 既能保证重用代码,还能保证类型安全。那我们就来看看Template是如何施展魔法的。Templa._c++ templates

用SublimeText3开发微信小程序时,如何让代码高亮显示_sumlime text 微信小程序代码高亮-程序员宅基地

文章浏览阅读497次。打开.wxml文件的时候,选择右下角的“Open all with current extension as…”,然后再从弹出的列表中选择“HTML”打开.wxss文件的时候,选择右下角的“Open all with current extension as…”,然后再从弹出的列表中选择“css”..._sumlime text 微信小程序代码高亮

php7链接mysql8报错SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)_运行php项目sqlstate[hy000] [1045] access denied for us-程序员宅基地

文章浏览阅读7.1k次。使用环境:windows 7 下wampserver 3.2.0-64bitmysql版本8.0.18 端口号:3308php版本7.3.12测试的源码:<?php$servername = "localhost";$username = "root";$password = "root"; try { $conn = new PDO("mysql:host=..._运行php项目sqlstate[hy000] [1045] access denied for user ''@'localhost' (usi

H5分享功能实现_h5分享 代码怎么实现-程序员宅基地

文章浏览阅读1.3k次。H5分享_h5分享 代码怎么实现

C语言实现牛顿插值法(附完整源码)_c语言利用插值法生成200个速度的数据-程序员宅基地

文章浏览阅读210次。C语言实现牛顿插值法(附完整源码)_c语言利用插值法生成200个速度的数据

python一般用什么开发工具,python最好用的开发工具-程序员宅基地

文章浏览阅读872次,点赞13次,收藏28次。大家好,小编来为大家解答以下问题,python一般用什么开发工具,python最好用的开发工具,今天让我们一起来看看吧!随着互联网的迅速发展,新技术不断创新,万物互联的时代,企业对IT人员的需求不断增加,很多想要进入IT行业的小伙伴经常会抱怨,想入门,却不知道从哪下手。,别着急,学习一门语言最难的永远是入门,今天小编就带大家一起看看Python常用的编程开发工具有哪些~有一个好的开发工具可以大大的提高编程开发的效率,目前市面上经常用到的Python编程开发工具有PTVS、集成开发环境等。

随便推点

个性化推荐中的多目标优化:业务与技术平衡-程序员宅基地

文章浏览阅读692次,点赞17次,收藏6次。1.背景介绍个性化推荐系统是现代互联网企业的核心业务之一,它通过分析用户行为、内容特征等多种信息,为每个用户推荐最合适的内容。在实际应用中,个性化推荐系统需要在满足用户需求的同时,也要考虑到业务需求,例如提高用户活跃度、增加用户 stickiness 等。因此,个性化推荐系统中的优化目标往往是多目标的,需要在多个目标之间进行权衡。在这篇文章中,我们将从以下几个方面进行深入探讨:背景介...

java颜色代码对照表_jsp颜色代码表-程序员宅基地

文章浏览阅读8w次,点赞33次,收藏166次。我们在编程中常常用到十六进制颜色码。   下面是颜色码对照表-英文名称-十六进制-RGB: 英文代码 形像颜色 HEX格式 RGB格式 LightPink浅粉色#FFB6C1255,182,193Pink粉红#FFC0CB255,192,_jsp颜色代码表

hive制作拉链表_hive创建拉链表-程序员宅基地

文章浏览阅读429次。制作拉链表step以订单表为例1、 拉取线上mysql订单表以初始化拉链表2、 以后每天仅需要拉取当天创建或者当天更新的数据,放入增量表中3、 拉链表的更新分为两部分part1 增量表中的新增的记录(历史从未出现,即create_time=当天)part2 拉链表left join增量表,获取历史出现当天更新的数据,将历史数据关链insert overwrite order_ch..._hive创建拉链表

python uniform 函数_python uniform函数-程序员宅基地

文章浏览阅读1.9w次,点赞8次,收藏40次。python的 uniform 函数_python uniform函数

[Java] 基于数据库的分布式锁_java 基于数据库的分布式锁-程序员宅基地

文章浏览阅读4.4w次。基于数据库表要实现分布式锁,最简单的方式可能就是直接创建一张锁表,然后通过操作该表中的数据来实现了。当我们要锁住某个方法或资源时,我们就在该表中增加一条记录,想要释放锁的时候就删除这条记录。创建这样一张数据库表:当我们想要锁住某个方法时,执行以下SQL:因为我们对method_name做了唯一性约束,这里如果有多个请求同时提交到数据库的话,数据库会保证只有一个操作可以成..._java 基于数据库的分布式锁

Docker入门-程序员宅基地

文章浏览阅读1.6k次,点赞55次,收藏10次。`docker exec -it bash`:进入容器内部的bash shell进行交互式操作。- `docker build -t .`:使用当前目录下的Dockerfile构建镜像。- `docker container run `:基于指定镜像启动一个新的容器。- `docker container logs `:查看容器的日志输出。

推荐文章

热门文章

相关标签