JavaEE 入门
JavaEE 是 Java Web 开发的基础规范集合。即使现在大多数项目使用 Spring Boot,底层仍然离不开 Servlet、Filter、Listener、JDBC、Session、Cookie 等基础能力。
零基础可以先把 JavaEE 理解成“Java 程序如何接收 HTTP 请求、访问数据库、保存登录状态”的基础层。
为什么学 Spring Boot 也要懂 JavaEE
Spring Boot 帮你自动配置了 Web 容器、Servlet、Filter、数据源和很多默认组件,但它没有绕开 JavaEE 基础。请求进入 Spring MVC 前,仍然先进入 Servlet 容器;Spring Security 的很多能力也建立在 Filter 链之上。
如果不懂 JavaEE,遇到登录失效、跨域、Filter 顺序、Session 丢失、数据库连接泄漏时,很容易只看 Controller 或 Service,找不到真正入口。
学习路线
mermaid
flowchart TD
A["HTTP 请求"] --> B["Servlet 接收请求"]
B --> C["Filter 做统一拦截"]
C --> D["业务代码处理"]
D --> E["JDBC 访问数据库"]
B --> F["Session 和 Cookie 维持登录"]
G["Listener"] --> H["监听应用和会话生命周期"]核心主题
| 主题 | 解决的问题 |
|---|---|
| 从零到生产级掌握 | 串起 Web 容器、Servlet、Filter、Session、JDBC、连接池、事务和排查 |
| 商业场景训练营 | 用登录过滤、Session 多实例、JDBC 事务和连接池排查串起生产落地 |
| Servlet | Java 如何处理 HTTP 请求 |
| Filter | 如何在请求前后统一处理日志、登录、跨域 |
| Listener | 如何监听应用、请求、Session 生命周期 |
| JDBC | Java 如何访问数据库 |
| Session/Cookie | HTTP 无状态下如何保持登录 |
核心原理:一次请求如何进入 Java 应用
mermaid
flowchart TD
A["浏览器发送 HTTP 请求"] --> B["Tomcat / Jetty 接收"]
B --> C["创建 Request / Response 对象"]
C --> D["执行 Filter 链"]
D --> E["匹配 Servlet"]
E --> F["业务代码处理"]
F --> G["写入 Response"]
G --> H["Filter 返回阶段"]
H --> I["浏览器收到响应"]这条链路说明:Controller 不是请求的第一个入口。编码、跨域、登录校验、日志、限流等统一逻辑通常发生在 Filter 或框架封装的过滤器链中。
代码 Demo:最小 Servlet
java
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
response.setContentType("text/plain;charset=UTF-8");
response.getWriter().write("hello JavaEE");
}
}如果使用注解注册:
java
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException {
response.getWriter().write("hello");
}
}和 Spring Boot 的关系
Spring Boot 不是替代 JavaEE 基础,而是封装了大量重复配置。例如:
| JavaEE 基础 | Spring Boot 中的体现 |
|---|---|
| Servlet | DispatcherServlet |
| Filter | Spring Security 过滤器链、CORS Filter |
| Listener | 应用启动事件、Servlet 监听器 |
| JDBC | DataSource、JdbcTemplate、ORM 框架底层 |
| Session/Cookie | 登录态、Spring Session |
学习建议
- 先理解 Servlet 请求响应模型。
- 再理解 Filter 为什么能做登录校验和日志。
- 学 JDBC 时重点理解连接、事务和资源关闭。
- 学 Session/Cookie 时重点理解登录态如何保持。
- 再回头看 Spring MVC 和 Spring Security,会更容易理解。
小结
JavaEE 是 Java Web 的地基。现代项目虽然很少直接手写大量 Servlet 和 JDBC,但理解它们能帮助你看懂 Spring Boot、Spring MVC、Spring Security 和 ORM 框架的底层行为。
