web实操3——servlet

课程链接b站:第12课
https://www.bilibili.com/video/BV1qv4y1o79t?spm_id_from=333.788.videopod.episodes&vd_source=05a3c1275b87b47507d869e9349ee3cd&p=233

为什么只要写一个实现Servlet的类就可以被调用

tomcat根据url去web.xml里定位到我们写的类后,就做了如下1,2,3操作
在这里插入图片描述
所以我们只需要按照人家规定的结构把service方法实现了,在里面编写好我们想要的逻辑,就可以了,对象的创建和方法的调用都是由服务器执行的。

所以也就是说了,为什么servlet的运行依赖于web容器,也就是说你不在这个容器里,没人帮你创建对象,没人帮你调用方法,就运行不了。
在这里插入图片描述
补充:
web.xml配置多个路径时写法:
在这里插入图片描述

Servlet类方法详解,servlet生命周期

init方法:

服务器启动后,第一次浏览器访问这个servlet的路径回车后,就会执行。执行完执行service方法。
在这里插入图片描述

service方法:

服务器启动后,浏览器每次访问路径,回车都会执行service方法。
在这里插入图片描述
在这里插入图片描述

destroy方法:

服务器正常关闭了(非正常关闭,直接把黑窗口叉掉这样,destory方法不会被执行),servlet被销毁了,servlet被销毁的时候执行destory方法
在这里插入图片描述
理解成交待临终遗言,所以这个方法是servlet销毁之前执行。
在这里插入图片描述

正常关闭服务器:就自动执行了destory方法:
关闭前:
在这里插入图片描述
点击后:
在这里插入图片描述

servlet生命周期:

什么时候被创建,什么时候被销毁
在这里插入图片描述

getServletConfig方法

返回了ServletConfig对象,是Servlet的配置对象。
这个方法需要我们自己去实现的,我们暂时先不做实现,先了解一下。
在这里插入图片描述

getServletInfo方法

获取servlet的一些信息,一般我们也不实现他,了解一下就可以了。
在这里插入图片描述

servlet生命周期详解

指定servlet的创建时机

在这里插入图片描述
如何指定:
在xml里用坐标指定,说明如下图:一共有两种时机
在这里插入图片描述
服务器启动时创建:
只要一启动就创建,不是要浏览器url回车创建了。
无论配成哪种,都是要先执行init方法。
但是service方法是必须浏览器回车的时候才会调用。
在这里插入图片描述

使用场景:

有的servlet加载的资源比较多,init方法用来加载资源的
有的servlet执行之前需要依赖于其他的servlet,我们可以把其他servlet在服务器启动的时候就创建。就这个意思。

servlet单例的问题和解决

一个servlet内存里只有这一个对象:
在这里插入图片描述
这样一个对象会有的问题:
多个线程访问同样的对象资源的时候,这个时候可能会存在多线程的访问安全问题。
张三浏览器可以访问,李四也可以访问,王五也可以,
那么这同一个对象就是共享资源,就会存在安全问题。

加锁也不行,比如这个是12306的,张三在买,全国这么多亿人在那等着他买完吗,很不合适,性能影响太严重。

解决:
一个对象里面,方法不被共享,成员变量是被共享的。
所以尽量在方法里定义局部变量,每次方法进栈都会有一个变量存在在栈里,这个变量就不再是共享的了。这样就不会存在安全问题了。

如果万不得已必须要定义一个成员变量,尽量不要修改值,我们仅仅是获取这个值的话,每次只是拿这个值,没有对他修改,没有并发的操作,也不会有安全问题。
并发的问题是,有的线程对他进行修改了,有的对他获取了,所以才会出现数据安全错乱的问题。
在这里插入图片描述

前:
在这里插入图片描述

改成在方法里定义:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/59524.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML 基础标签——分组标签 <div>、<span> 和基础语义容器

文章目录 1. `<div>` 标签特点用途示例2. `<span>` 标签特点用途示例3. `<fieldset>` 标签特点用途示例4. `<section>` 标签特点用途示例5. `<article>` 标签特点用途示例总结HTML中的分组(容器)标签用于结构化内容,将页面元素组织成逻辑区域…

NPU 可不可以代替 GPU

结论 先说结论&#xff0c;GPU分为可以做图形处理的传统意义上的真GPU&#xff0c;做HPC计算的GPGPU和做AI加速计算的GPGPU&#xff0c;所以下面分别说&#xff1a; 对于做图形处理的GPU&#xff0c;这个就和NPU 一样&#xff0c;属于DSA&#xff0c;没有替代性。当然&#xf…

2024年无线领夹麦克风十大品牌推荐,衣领麦克风哪个品牌好

声音&#xff0c;是沟通的桥梁&#xff0c;是信息的载体。在信息爆炸的时代&#xff0c;如何让自己的声音脱颖而出&#xff0c;成为了每个人都需要思考的问题。无线领夹麦克风&#xff0c;以其小巧便携、无线传输的特点&#xff0c;成为了众多声音爱好者的首选。市场上无线领夹…

杨传辉:云+AI 时代的一体化数据库|OceanBase发布会实录

在 2024 OceanBase 年度发布会 上&#xff0c; OceanBase CTO 杨传辉进行了主题为《云和 AI 时代的一体化数据库战略思考》的演讲&#xff0c;本文为演讲实录&#xff0c;欢迎阅读。 视频观看可点击&#xff1a;https://www.oceanbase.com/video/9001825 各位 OceanBase 的客…

[大模型]视频生成-Sora简析

参考资料&#xff1a; Sora技术报告https://openai.com/index/video-generation-models-as-world-simulators/4分钟详细揭密&#xff01;Sora视频生成模型原理https://www.bilibili.com/video/BV1AW421K7Ut 一、概述 相较于Gen-2、Stable Diffusion、Pika等生成模型的前辈&am…

【docker入门】docker的安装

目录 Centos 7 添加docker 官方仓库到yum源 将 Docker 的官方镜像源替换为国内可以的 Docker 镜像源 安装docker 配置docker加速源 Ubuntu 创建 gpg key 目录 下载 gpg key 添加国内可用镜像源到 系统的 APT 仓库中 安装docker 配置加速源 Centos 7 添加docker 官方仓…

2024年【汽车修理工(高级)】考试总结及汽车修理工(高级)试题及解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 汽车修理工&#xff08;高级&#xff09;考试总结是安全生产模拟考试一点通总题库中生成的一套汽车修理工&#xff08;高级&#xff09;试题及解析&#xff0c;安全生产模拟考试一点通上汽车修理工&#xff08;高级&a…

vscode的一些使用心得

问题1&#xff1a;/home目录空间有限 连接wsl或者remote的时候&#xff0c;会在另一端下载一个.vscode-server&#xff0c;vscode的插件都会安装进去&#xff0c;导致空间增加很多&#xff0c;可以选择更换这个文件的位置 参考&#xff1a;https://blog.csdn.net/weixin_4389…

Qt(openCV的应用)

1. OpenCV简介 OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉库&#xff0c;它提供了丰富的图像处理和计算机视觉功能。该库由英特尔公司发起&#xff0c;并在 BSD 许可证下发布&#xff0c;因此它是免费的&#xff0c;且开放源代…

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用 目录 文章目录 【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用目录摘要研究背景问题与挑战如何解决创新点算法模型1. 知识总结模块&#xff08;Knowledge Summarization Module&…

【Android】时区规则库tzdata更新

1 背景&#xff1a; 最近我遇到墨西哥城时区&#xff0c;会出现夏令时&#xff0c;而墨西哥城在2022年底都已经取消夏令时了。 看起来是要更新RK3588上的时区库&#xff0c;我的还是2021a&#xff0c;而现在都已经2024年了 这样能看版本号&#xff1a; cat /system/usr/sha…

【论文速看】DL最新进展20241106-图像分类、图像分割、时间序列预测

目录 【图像分类】【图像分割】【时间序列预测】 【图像分类】 [2024 解耦数据增强] Decoupled Data Augmentation for Improving Image Classification 机构&#xff1a;腾讯优图 论文链接&#xff1a;https://arxiv.org/pdf/2411.02592v1 代码链接&#xff1a;无 最近在图…

[MRCTF2020]PYWebsite1

如果输入的密钥是对的那么我们就直接跳转到flag.php页面 那么我们直接访问&#x1f60e;&#xff0c;他不带我们去我们自己去. 那就用XFF呗. 知识点&#xff1a; 定义&#xff1a;X-Forwarded-For是一个HTTP请求头字段&#xff0c;用于识别通过HTTP代理或负载均衡方式连接到W…

穿越文化与时空的回响——从廖问洁《红豆诗词选》看当代人文情怀

穿越文化与时空的回响 ——从廖问洁《红豆诗词选》看当代人文情怀 在快节奏的现代生活中&#xff0c;我们时常感到身心的疲惫&#xff0c;渴望找到一种能够洗涤内心的方式。而廖问洁的《红豆诗词选》就如同一股清泉&#xff0c;为我们带来了心灵的洗礼和慰藉。 这位来自94年的…

01 Oracle 数据库存储结构深度解析:从数据文件到性能优化的全链路探究

文章目录 Oracle 数据库存储结构深度解析&#xff1a;从数据文件到性能优化的全链路探究一、Oracle存储结构的物理层次1.1 控制文件&#xff08;Control File&#xff09;1.2 联机重做日志文件&#xff08;Online Redo Log File&#xff09;1.3 数据文件&#xff08;Data File&…

练习LabVIEW第四十二题

学习目标&#xff1a; 使用labview编写一个用户确认界面&#xff1a; 我们在程序中赋予5个人的账号密码&#xff0c;账号使用人名&#xff0c;密码随便&#xff0c;并规定相关权限。访问权限要在前面板显示&#xff0c;并且访问成功与否也要有显示。 开始编写&#xff1a; 前…

如何安装QT(linux/windows)

1. linux 1.1 下载安装程序 进入QT官网&#xff0c;点击右上角下载 Qt | Tools for Each Stage of Software Development Lifecycle​www.qt.io/ 然后选择下载linux版本&#xff0c;这里你需要填写一些信息&#xff0c;注册一些即可 填写之后会出现下面这个网页&#xff0c;…

数组和指针的复杂关系

C语言中指针和数组的关系似乎很“纠结”&#xff0c;让人爱恨交织。本文试图帮助读者理清它们之间的复杂关系&#xff01; 数组名的理解 数组元素在内存中是连续存放的&#xff0c;在C语言中&#xff0c;数组名有特殊的含义&#xff0c;它表示数组首元素的地址。因此&#xf…

前后端分离,Jackson,Long精度丢失

案例:后端接口放回一个Long数据 GetMapping("/testForLong")public Map<String, Object> testForLong() {Map<String, Object> map new HashMap<>();map.put("aaa", 1234567890123456789L);return map;}实际前端接收的数据 前后端数据…

1.3 自然语言处理的应用

自然语言处理&#xff08;NLP&#xff09;在多个领域有广泛应用&#xff0c;如自动文摘、机器翻译、情感分析等。本实战将通过NLTK库&#xff0c;演示文本预处理的关键技术&#xff0c;包括小写转换、去噪、文本规范化、词干提取、词形还原、标记化以及删除停止词。这些技术为构…