Skip to content

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 事务和连接池排查串起生产落地
ServletJava 如何处理 HTTP 请求
Filter如何在请求前后统一处理日志、登录、跨域
Listener如何监听应用、请求、Session 生命周期
JDBCJava 如何访问数据库
Session/CookieHTTP 无状态下如何保持登录

核心原理:一次请求如何进入 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 中的体现
ServletDispatcherServlet
FilterSpring Security 过滤器链、CORS Filter
Listener应用启动事件、Servlet 监听器
JDBCDataSource、JdbcTemplate、ORM 框架底层
Session/Cookie登录态、Spring Session

学习建议

  1. 先理解 Servlet 请求响应模型。
  2. 再理解 Filter 为什么能做登录校验和日志。
  3. 学 JDBC 时重点理解连接、事务和资源关闭。
  4. 学 Session/Cookie 时重点理解登录态如何保持。
  5. 再回头看 Spring MVC 和 Spring Security,会更容易理解。

小结

JavaEE 是 Java Web 的地基。现代项目虽然很少直接手写大量 Servlet 和 JDBC,但理解它们能帮助你看懂 Spring Boot、Spring MVC、Spring Security 和 ORM 框架的底层行为。