JavaEE:Servlet创建和使用及生命周期介绍
目录
▐ Servlet概述
▐ Servlet的创建和使用
▐ Servlet中方法介绍
▐ Servlet的生命周期
▐ Servlet概述
• Servlet是Server Applet的简称,意思是 用Java编写的服务器端的程序,Servlet被部署在服务器中,而服务器负责管理并调用Servlet.
• Servlet的作用 :
- 接收用户发送的请求
- 调用其他java程序进行处理
- 向前端做出响应
▐ Servlet的创建和使用
• 自己创建一个类,并继承HttpServlet,这样我们的类也就遵守了JavaEE规范
• 重写父类中的方法
• 在web.xml文件中配置Servlet
让类继承HttpServlet,并重写父类方法(也就是前两步)
import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import java.io.IOException;/*创建Servlet:1. 自己创建一个类,并继承HttpServlet,这样我们的类也就遵守了JavaEE规范2. 重写父类中的方法3. 在web.xml文件中配置Servlet*/ public class LoginServlet_back2 extends HttpServlet {@Overridepublic void init() throws ServletException {System.out.println("init");}@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {System.out.println("service");}@Overridepublic void destroy() {System.out.println("destory");}}在web.xml文件中配置Servlet
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!-- 注册Servlet--><servlet><servlet-name>login</servlet-name> <!-- 为Servlet对象定义名称--> <!-- 配置Servlet类名,服务器启动时会创建此类的对象,只创建一次--><servlet-class>webserver.servlet.LoginServlet_back2</servlet-class></servlet> <!-- 为Servlet配置访问地址--><servlet-mapping><servlet-name>login</servlet-name><url-pattern>/login</url-pattern> <!-- 前端访问地址,必须/开头--></servlet-mapping></web-app>🔖知识补充
xml文件: 也是属于一种标记语言,但与html不同,xml主要用来存储配置数据的
web.xml文件:存储当前项目配置信息,例如配置Servlet,过滤器,监听器...
此文件是服务器启动时由服务器读取,名字和位置不能修改!
▐ Servlet中方法介绍
无参构造: 用来初始化Servlet,可以不写,只被调用一次.
init( ): 也是用来初始化Servlet的,在构造方法执行完毕后执行,只执行一次。
server( ): 多次被执行,是提供服务的.
destory( ): 在服务器关闭时调用.
import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import java.io.IOException;public class LoginServlet_back2 extends HttpServlet {/*不写也会存在,只被调用一次/一个Servlet类只被创建一个对象什么时候调用:1. 第一次向Servlet程序发起请求时2. 服务器启动时创建,需要在web.xml中配置*/public LoginServlet_back2() {System.out.println("无参构造方法");}/*也是用来初始化Servlet的在构造方法执行完毕后执行,只执行一次是Servlet规范中必须调用的方法,若不重写默认调用父类的init方法*/@Overridepublic void init() throws ServletException {System.out.println("init");}/*多次被执行,是提供服务的ServletRequest:前端发送的数据都被包装到此对象中ServletResponse:表示响应*/@Overridepublic void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {System.out.println("service");}/*在服务器关闭时调用*/@Overridepublic void destroy() {System.out.println("destory");}}如果要服务器启动时就创建Servlet,需要在web.xml中配置 </load-on-startup>
<load-on-startup>1</load-on-startup>
▐ Servlet的生命周期
通过对Servlet中方法的介绍,其实我们对它生命周期已然大致了解,那再总结下吧!
实例化:在第一次访问/服务器启动时创建,调用无参构造,只调用一次。(开始)
初始化:在构造方法被执行完后执行,可以不重写,会自动调用父类的 ,同样也只调一次。
服务:多次调用,每次请求都会调用service()
销毁:在服务器关闭时执行,执行一些必要的操作,只被调用一次。

相关文章:
JavaEE:Servlet创建和使用及生命周期介绍
目录 ▐ Servlet概述 ▐ Servlet的创建和使用 ▐ Servlet中方法介绍 ▐ Servlet的生命周期 ▐ Servlet概述 • Servlet是Server Applet的简称,意思是 用Java编写的服务器端的程序,Servlet被部署在服务器中,而服务器负责管理并调用Servle…...
【Python设计模式15】适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而无法一起工作的类能够一起工作。通过使用适配器模式,可以使得现有的类能够适应新的接口需…...
【Python设计模式05】装饰模式
装饰模式(Decorator Pattern)是一种结构型设计模式,它允许向一个现有对象添加新的功能,同时又不改变其结构。装饰模式通过创建一个装饰类来包裹原始类,从而在不修改原始类代码的情况下扩展对象的功能。 装饰模式的结构…...
kafka 消费模式基础架构
kafka 消费模式 &基础架构 目录概述需求: 设计思路实现思路分析1.kafka 消费模式基础架构基础架构2: 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,…...
nginx安装部署问题
记一次nginx启动报错问题处理 问题1 内网部署nginx,开始执行make,执行不了,后面装了依赖的环境 yum install gcc-c 和 yum install -y pcre pcre-devel 问题2,启动nginx报错 解决nginx: [emerg] unknown directive “stream“ in…...
揭开Java序列化的神秘面纱(上)Serializable使用详解
Java序列化(Serialization)作为一项核心技术,在Java应用程序的多个领域都有着广泛的应用。无论是通过网络进行对象传输,还是实现对象的持久化存储,序列化都扮演着关键的角色。然而,这个看似简单的概念蕴含着丰富的原理和用法细节&…...
深度学习——自己的训练集——图像分类(CNN)
图像分类 1.导入必要的库2.指定图像和标签文件夹路径3.获取文件夹内的所有图像文件名4.获取classes.txt文件中的所有标签5.初始化一个字典来存储图片名和对应的标签6.遍历每个图片名的.txt文件7.随机选择一张图片进行展示8.构建图像的完整路径9.加载图像10.检查图像是否为空 随…...
goimghdr,一个有趣的 Python 库!
更多Python学习内容:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - goimghdr。 Github地址:https://github.com/corona10/goimghdr 在图像处理和分析过程中,识别图像文件的类型是一个常见的需求。Python自带的imghdr…...
每小时电量的计算sql
计算思路,把每小时的电表最大记录取出来,然后用当前小时的最大值减去上个小时的最大值即可。 使用了MYSQL8窗口函数进行计算。 SELECT b.*,b.epimp - b.lastEmimp ecValue FROM ( SELECT a.deviceId,a.ctime,a.epimp, lag(epimp) over (ORDER BY a.dev…...
自动化您的任务——crewAI 初学者教程
今天,我写这篇文章是为了分享您开始使用一个非常流行的多智能体框架所需了解的所有信息:crewAI。 我将在这里或那里跳过一些内容,使本教程成为一个精炼的教程,概述帮助您入门的关键概念和要点 今天,我写这篇文章是为了…...
K8s集群中的Pod调度约束亲和性与反亲和性
前言 在 K8s 集群管理中,Pod 的调度约束——亲和性(Affinity)与反亲和性(Anti-Affinity)这两种机制允许管理员精细控制 Pod 在集群内的分布方式,以适应多样化的业务需求和运维策略。本篇将介绍 K8s 集群中…...
kafka之consumer参数auto.offset.reset
Kafka的auto.offset.reset 参数是用于指定消费者在启动时如何处理偏移量(offset)的。这个参数有三个主要的取值:earliest、latest和none。 earliest: 当各分区下有已提交的offset时,从提交的offset开始消费;…...
回答篇二:测试开发高频面试题目
引用之前文章:测试开发高频面试题目 本篇文章是回答篇(持续更新中) 1. 在测试开发中使用哪些自动化测试工具和框架?介绍一下你对其中一个工具或框架的经验。 a. 测试中经常是用的自动化测试工具和框架有Selenium、Pytest、Postman…...
React18 apexcharts数据可视化之甜甜圈图
03 甜甜圈图 apexcharts数据可视化之甜甜圈图。 有完整配套的Python后端代码。 本教程主要会介绍如下图形绘制方式: 基本甜甜圈图个性图案的甜甜圈图渐变色的甜甜圈图 面包圈 import ApexChart from react-apexcharts;export function DonutUpdate() {// 数据…...
如何通过OpenHarmony的音频模块实现录音变速功能?
简介 OpenAtom OpenHarmony(以下简称“OpenHarmony”)是由开放原子开源基金会孵化及运营的开源项目,是面向全场景、全连接、全智能时代的智能物联网操作系统。 多媒体子系统是OpenHarmony系统中的核心子系统,为系统提供了相机、…...
探索 Rust 语言的精髓:深入 Rust 标准库
探索 Rust 语言的精髓:深入 Rust 标准库 Rust,这门现代编程语言以其内存安全、并发性和性能优势而闻名。它不仅在系统编程领域展现出强大的能力,也越来越多地被应用于WebAssembly、嵌入式系统、分布式服务等众多领域。Rust 的成功࿰…...
Log360:护航安全,远离暗网风险
暗网有时候就像是一个神秘的地下世界,是互联网的隐蔽角落,没有任何规则。这是一个被盗数据交易、网络犯罪分子策划下一步攻击的地方。但仅仅因为它黑暗,不意味着你要对潜在的威胁视而不见。 暗网 这就是ManageEngine Log360的用武之地&…...
react使用antd警告:Warning: findDOMNode is deprecated in StrictMode.
警告信息: Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of DOMWrap which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: htt…...
Docker Swarm - 删除 worker 节点
1、前提:集群环境已经运行 在manager节点上执行: # 查看节点信息 >>> docker node lsID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION jr06s8pbrclkrxt7jpy7wae8t * iZ2ze78653g2…...
AI视频智能分析技术赋能营业厅:智慧化管理与效率新突破
一、方案背景 随着信息技术的快速发展,图像和视频分析技术已广泛应用于各行各业,特别是在营业厅场景中,该技术能够有效提升服务质量、优化客户体验,并提高安全保障水平。TSINGSEE青犀智慧营业厅视频管理方案旨在探讨视频监控和视…...
掌握3大核心架构:LiveSplit如何为速度跑者提供毫秒级精准计时
掌握3大核心架构:LiveSplit如何为速度跑者提供毫秒级精准计时 【免费下载链接】LiveSplit A sleek, highly customizable timer for speedrunners. 项目地址: https://gitcode.com/gh_mirrors/li/LiveSplit 如果你是一名速度跑者,面对复杂的游戏计…...
本地视频怎么去水印?2026 视频去水印方法与软件推荐指南
概述:为什么要给视频去水印 视频水印是内容平台的标识符,但在某些场景下会影响使用体验——比如下载的视频要用于素材库、制作集锦或进行二次编辑时,水印就成了累赘。本文总结了2026年最实用的本地视频去水印方法,涵盖手机小程序、…...
良心云用户如何快速接入Taotoken实现大模型API调用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 良心云用户如何快速接入Taotoken实现大模型API调用 对于在良心云服务器上部署应用的开发者而言,将大模型能力集成到自己…...
基于 RPA 自动化技术的私域机器人助手构建指南
利用自动化工作流实现私域运营中的消息智能响应与多任务协同 能力介绍 在私域流量运营中,如何高效响应用户需求、精细化管理社群是提升转化率的关键。传统的人工客服模式往往面临响应不及时、重复性劳动繁重等问题。 本方案基于 RPA(机器人流程自动化…...
TikTokDownload:5分钟搞定抖音去水印批量下载终极方案
TikTokDownload:5分钟搞定抖音去水印批量下载终极方案 【免费下载链接】TikTokDownload 抖音去水印批量下载用户主页作品、喜欢、收藏、图文、音频 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokDownload 想要轻松保存抖音上的精彩内容却苦于官方水印…...
ncmdump终极教程:3分钟解锁网易云音乐NCM加密格式
ncmdump终极教程:3分钟解锁网易云音乐NCM加密格式 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器使用而烦恼吗?ncmdump就是你需要的终极解决方案…...
杰理之RX修改为连接一个TX后需要再次按键或者其他操作才能连接第二个TX的功能需求【篇】
void user_wireless_dev_pair_code_pri() { y_printf(“user_wireless_dev_pair_code_pri”); u32 pair_code 0; wireless_dev_get_pair_code(“big_rx”, (u8 *)&pair_code, 1); wireless_dev_set_pair_code(“big_rx”, (u8 *)&pair_code); } //连接一个无线麦后&am…...
多组学数据如何高效上传GSA?这份流程指南请收好
GSA(Genome Sequence Archive,基因组序列存档)由中科院基因组所主办,是国内权威的组学数据存储与共享平台,为全球科研人员提供基因组、转录组等高通量测序数据的提交、存储与开放获取服务,支撑生命科学研究与数据共享。…...
2025-2026年儿童护眼灯品牌推荐:TOP5评测口碑市场份额AI自动调光选择指南
摘要 在儿童青少年近视率持续攀升的今天,为孩子选择一盏真正懂得保护视力的学习灯,已成为众多家长的核心关切。然而,面对市场上琳琅满目的品牌与复杂的技术参数,家长们往往陷入“如何选、看什么、信谁”的决策困境。据世界卫生组织…...
B站成分检测器:5分钟快速上手终极指南,智能识别评论区用户真实身份
B站成分检测器:5分钟快速上手终极指南,智能识别评论区用户真实身份 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分,支持动态和关注识别以及手动输入 UID 识别 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-c…...
