总的来说目前的市场上java技术和其他的技术栈在快速更新迭代,昨天就有同学问我Servlet的JDBC这些技术该不该学呢,因为他现在正在学springAi,市场上基本已经开始了新技术的教程了,但是确有很多同学不知道一些底层原理,认为学了这些没什么用处,其实这些技术原理才是很重要的,不知道原理的话对于以后进大厂或者学其他技术栈都很不方便.
JavaWeb、Servlet、后端开发
一、什么是Servlet?一句话秒懂
官方定义:Servlet 是用 Java 编写的服务器端程序,用于处理 HTTP 请求并生成动态 Web 内容。
人话翻译:浏览器发请求 → Servlet 接收处理 → 返回 HTML/JSON 等响应。
🔥 与普通Java类的本质区别
对比项 | 普通Java类 | Servlet |
---|---|---|
运行环境 | JVM | Web容器(Tomcat等) |
交互方式 | Main方法/手动调用 | 通过HTTP协议自动触发 |
生命周期 | 手动控制 | 容器管理(自动创建/销毁) |
二、Servlet 生命周期(附时序图)
1. 三阶段核心流程
容器启动 ↓ 1. 初始化阶段:调用 init() → **仅执行1次** ↓ 2. 服务阶段:收到请求 → 调用 service() → 根据请求类型分派 doGet()/doPost() ↓ 3. 销毁阶段:容器关闭 → 调用 destroy() → 释放资源
2. 代码验证生命周期
控制台输出验证:
🟢 init() 执行 → 数据库连接池初始化... 🔵 doGet() 执行 → 处理GET请求... 🔵 doGet() 执行 → 处理GET请求... 🔴 destroy() 执行 → 释放线程池...
三、手撸第一个Servlet(附避坑指南)
1. 开发四步曲
步骤1:继承 HttpServlet
步骤2:重写 doGet
/doPost
方法
步骤3:配置 web.xml
(传统方式)
步骤4:注解配置(推荐!Servlet 3.0+)
新手必踩的坑
-
包路径错误:未将Servlet类放在
src/main/java
下 -
忘记导包:
javax.servlet.*
需引入Tomcat的servlet-api.jar -
URL重复映射:多个Servlet配置了相同的
url-pattern
四、Servlet 核心API详解(重点标记)
1. 两大核心对象
对象名 | 作用 | 高频方法举例 |
---|---|---|
HttpServletRequest | 封装客户端请求数据 | getParameter() , getSession() , setAttribute() |
HttpServletResponse | 控制服务器响应内容 | getWriter() , sendRedirect() , setContentType() |
2. 四大核心方法
五、Servlet 实际应用场景
1. 用户登录验证
2. 文件上传下载
-
上传:使用
Apache Commons FileUpload
库 -
下载:设置响应头
3. 构建RESTful API
六、Servlet 与现代框架的关系
虽然现在流行 Spring MVC,但底层依然依赖 Servlet:
-
DispatcherServlet
是 Spring MVC 的核心前端控制器 -
Filter(过滤器)和 Listener(监听器)基于 Servlet 规范
-
理解Servlet是进阶高级开发的必经之路!
@下一期讲解JDBC的用处
最后一句,加油兄弟姐妹们,这是java成长的必经之路!!!