news 2026/5/10 13:24:46

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/5/9 15:10:44

智能文档处理全栈指南:从OCR到VLM智能体的技术演进与AWS Serverless实践

本文详细介绍了智能文档处理技术的三个演进阶段:从Tesseract规则匹配到PaddleOCR深度学习,再到基于VLM智能体的端到端解析。文章探讨了如何通过布局检测、阅读逻辑排序和视觉工具链实现文档智能化,并介绍了使用AWS Serverless与LandingAI ADE…

作者头像 李华
网站建设 2026/5/7 18:49:26

模型服务化这件事:从 Batch 到 Stream,不只是改个部署方式那么简单

模型服务化这件事:从 Batch 到 Stream,不只是改个部署方式那么简单 说句掏心窝子的实话: 绝大多数模型“死”在部署阶段,不是死在算法上。 训练时 AUC 飞起、离线评估美如画,一到线上就翻车——延迟高、数据对不上、效…

作者头像 李华
网站建设 2026/5/2 14:24:01

【回眸】Polyspace教程(一) 小白使用篇

前言 最近公司换工具换的比较频繁,几乎全换了一遍,QAC也和Tessy一样淡出了工具栏。最近开始学习使用Polyspace,乘记忆还新鲜,出个使用Guide记录一下,攒攒人品。 软件信息 软件身份确认 软件名称:Polyspace Code Prover™(含桌面版、服务器版) 所属公司:The MathWor…

作者头像 李华
网站建设 2026/5/6 13:46:21

PPP与PPPoE协议介绍

我们之前学习的大多是局域网LAN内常用的技术,但是我们总是需要访问Internet,需要访问百度、B站等等,那怎样让局域网访问外面的资源呢,其实我们已经学习过了NAT转换,但是那对于广域网的架构我们还是需要学习下的。一、广…

作者头像 李华