news 2026/4/23 13:02:16

Servlet 进阶!生命周期+3种创建方式+前后台传参,一篇吃透

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Servlet 进阶!生命周期+3种创建方式+前后台传参,一篇吃透

各位小伙伴👨💻!上一篇我们搞定了 Servlet 入门,今天直接进阶——聊聊 Servlet 的“一生”(生命周期)、3 种创建方式的优劣,还有前后台怎么传参。这些都是面试高频考点,也是实际开发中天天用的知识点,必须吃透!

一、Servlet 的“一生”:生命周期(听懂=拿分)

Servlet 的生命周期由 Tomcat 全程掌控,核心就 4 个节点,记口诀“构-init-服务-销毁,构init销毁各一次,服务次次都调用”:

方法/阶段

调用时机

作用

调用次数

构造方法

第一次请求 Servlet 时

Tomcat 反射创建 Servlet 实例

仅 1 次

init()

实例创建后立刻调用

初始化资源(如加载配置、连接数据库)

仅 1 次

service()

每次请求 Servlet 时

处理核心业务逻辑(接收参数、返回结果)

每次请求都调用

destroy()

关闭 Tomcat 时

释放资源(如关闭数据库连接、清理缓存)

仅 1 次

👉 举个栗子:就像开奶茶店——构造方法是“开店装修”(只装一次),init() 是“准备原料”(只备一次),service() 是“给每位顾客做奶茶”(来一个做一个),destroy() 是“关店清理”(只清一次)。

二、Servlet 的 3 种创建方式:选对少写 80% 代码

创建 Servlet 有 3 种方式,各有优劣,实际开发优先选第 3 种!

1. 方式 1:实现 Servlet 接口(入门款)
  • 缺点:必须实现所有方法,代码冗余;

  • 适用场景:新手理解原理,实际开发几乎不用。

2. 方式 2:继承 GenericServlet 抽象类(进阶款)

GenericServlet已经实现了Servlet接口的大部分方法,只需重写核心的service()

  • 优点:无需实现所有方法,代码更简洁;

  • 不足:未封装 HTTP 相关逻辑(如 GET/POST 请求区分)。

3. 方式 3:继承 HttpServlet 抽象类(实战款,99% 场景用它)

HttpServlet继承了GenericServlet,还封装了 HTTP 核心逻辑,两大核心优势:

① 自动区分 GET/POST 请求;

② 强化request/response(转为 Http 版本,支持 Session、Cookie 等)。

  • 优点:开发效率拉满,贴合实际 Web 开发;

  • 适用场景:所有实际开发场景(面试/工作都考这个)。

三、前后台传参:Servlet 和前端的“对话”

开发中最常用的就是前端传参数给 Servlet,Servlet 处理后再返回数据,核心就 2 行关键代码!

1. 接收前台参数(解决中文乱码是关键)

👉 小坑提醒:setCharacterEncoding("UTF-8")一定要先调用,否则中文参数会变成“???”!

2. 往前台传递数据

👉 前端取值:用 EL 表达式${msg}就能拿到“登录成功!”,超方便~

总结
  1. Servlet 生命周期核心:构造方法/init()/destroy() 各调用 1 次,service() 每次请求都调用;

  2. 创建方式优先选继承HttpServlet,可区分 GET/POST 请求,代码最简洁;

  3. 前后台传参:接收参数前先设编码UTF-8,传递数据用request.setAttribute()

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 4:47:12

中国香港股市估值:国际金融中心的市场特点

中国香港股市估值:国际金融中心的市场特点 关键词:中国香港股市、估值、国际金融中心、市场特点、投资分析 摘要:本文聚焦于中国香港股市的估值及其作为国际金融中心所呈现出的市场特点。首先介绍了研究中国香港股市估值及市场特点的目的、范围、预期读者等背景信息。接着阐述…

作者头像 李华
网站建设 2026/3/23 4:39:52

机器人关节电机散热设计

🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 💌公众号:莱歌数字(B站同名) 📱个人微信:yanshanYH 211、985硕士,从业16年 从…

作者头像 李华
网站建设 2026/4/23 12:47:56

布隆过滤器:原理、特性与 Python 实现

布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,由 Burton Howard Bloom 于 1970 年提出。它被广泛用于快速判断一个元素是否可能存在于一个集合中。虽然存在一定的误判率,但其在内存占用和查询速度上的优势使其在许多高性能系统中不可或缺。 核心特性 布隆…

作者头像 李华
网站建设 2026/4/23 12:52:23

Elasticsearch 索引设计详解

在使用 Elasticsearch 构建搜索或分析系统时,合理设计索引的 Settings(设置) 和 Mappings(映射) 是确保系统性能、功能和可维护性的关键。本文将通过一个贴近真实业务场景的完整示例,系统性地介绍如何配置索引,涵盖常见字段类型、分析器、多字段、嵌套结构、禁用字段等核…

作者头像 李华
网站建设 2026/4/21 13:16:32

制作小商家营销方案生成工具,输入店铺类型及目标人群,生成适配营销方案(线上/线下),标注执行步骤,帮小商家低成本获客。

1. 实际应用场景描述场景:一家社区咖啡馆老板想吸引更多年轻白领和附近学生到店消费,但预算有限,不知道该做线上还是线下活动,也不清楚具体执行步骤。目标:通过输入 店铺类型 和 目标人群,工具自动生成 低成…

作者头像 李华