当前位置: 首页 > news >正文

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()

http://www.jsqmd.com/news/342843/

相关文章:

  • 6款AI论文神器实测:真实参考文献、查重率低、原创度高,轻松搞定论文! - 麟书学长
  • Novel-Plus has business logic vulnerabilities.
  • 程序员入行AI大模型应用开发必须学算法吗?2026最新AI大模型应用开发的核心技术学习线路看这里
  • 【毕业设计】基于springboot+大数据的果园管理系统(源码+文档+远程调试,全bao定制等)
  • 7.4 Kubernetes存储故障排查:PV挂载失败、存储类问题诊断技巧
  • 大模型Agent Skills学习路线:从技能市场到数据预测,一篇搞定
  • 大数据计算机毕设之基于springboot+大数据的果园管理系统_数据可视化大屏分析系统(完整前后端代码+说明文档+LW,调试定制等)
  • 7.3 Kubernetes网络故障排查:CNI插件、Service、Ingress问题诊断
  • 告别金鱼记忆:为AI助手构建人类级记忆系统的完整指南
  • 7.2 Kubernetes备份恢复实战:etcd数据备份与集群灾难恢复方案
  • 22岁女生如何从新闻专业转行成为字节AIGC产品经理
  • 利用 Nimbus-7 SMMR 和 DMSP SSM/I-SSMIS V004 数据进行海冰浓度自举法计算
  • 【计算机毕业设计案例】基于大数据的智慧果园管理系统基于springboot+大数据的果园管理系统(程序+文档+讲解+定制)
  • 6.6 生产级微服务治理总结:从开发到部署的完整最佳实践
  • 零基础进阶大模型实战高手:从Transformer到企业级部署全攻略
  • AI大模型开发学习路线图详解:从入门到精通,你的完整学习指南!_大模型开发入门
  • 6.9 微服务治理最佳实践:服务发现、负载均衡、超时重试完整方案
  • 碳中和经济学:新约束下的宏观与行业趋势
  • 6.10 生产级微服务治理总结:从开发到部署的完整最佳实践
  • 程序员必看!微软免费生成式AI课程:从基础概念到实战应用,21节课掌握大模型开发(建议收藏)
  • 2026标准数字时钟系统厂家推荐榜:五家技术型供应商深度解析与场景化选型指南 - 深度智识库
  • 精通大数据领域的数据科学技能
  • 深入理解Agent Skills与MCP:构建AI智能体的必备技能,建议收藏学习
  • 2026标准数字时钟系统厂家推荐榜 高精度多场景适配优选指南 - 深度智识库
  • AI产品经理全景图:技术翻译官、行业解题者与平台建设者,建议收藏阅读
  • KDE Discover 代理问题
  • P4317 花神的数论题
  • 2026网络同步时钟系统厂家推荐榜高精度多场景适配优选指南 - 深度智识库
  • 模板元编程应用场景
  • 基于前述文章的完整MES对接代码示例,覆盖了汽车总装线场景下最常用的几种对接方式