前置准备
Tomcat 环境
Tomcat 是一个开源的轻量级 Web 服务器和 Servlet 容器,实现了 Java EE 规范的核心功能。它不仅是独立的 Java Web 服务器,还负责处理 HTTP 请求与响应。
目录结构方面,bin 存放启动脚本,conf 管理配置文件,lib 放置运行所需的 jar 包,webapps 则是默认的应用部署目录。
Servlet 基础
Servlet 是运行在服务器端的程序,遵循标准 API 规范。Tomcat 作为容器提供了让 Servlet 与前端交互的运行时环境。
生命周期由容器管理,包含加载、初始化、处理请求和销毁四个阶段:
- 类加载:Web 容器通过类加载器加载 Servlet 类(通常首次请求触发或容器启动时预加载)。
- 实例化:确认类加载成功后执行,每种 Servlet 类在容器中通常只有一个实例对象。
- 初始化:调用
init(ServletConfig config)方法,仅调用一次,用于读取配置和资源加载。 - 处理请求:为每个请求创建线程,调用
service()方法,进而根据 HTTP 类型分发到doGet()或doPost()。 - 销毁:容器关闭时调用
destroy()方法,标记实例供垃圾回收。
注意:由于多个请求共享同一个 Servlet 实例,编写业务逻辑时要注意线程安全。
Spring Boot 演进
直接编写 Servlet 就像自己烧砖砌墙,虽然灵活但极其繁琐。Spring 框架引入了 IoC 容器(管家)和依赖注入(预制件),让对象管理更自动化。
Spring Boot 进一步简化了配置,采用'约定大于配置'原则,内置嵌入式 Tomcat,无需打包 war 文件部署到外部容器,直接运行 jar 包即可启动应用。
Spring Web MVC 核心注解
请求映射 (@RequestMapping)
这是 Spring MVC 中最基础的注解,用于将 HTTP 请求映射到具体的方法上。
- 类级别:提供统一的 URL 前缀。
- 方法级别:指定该方法处理的 URL 路径及请求方式。
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/method")
public class MethodServlet extends HttpServlet {
@Override
protected void IOException {
System.out.println();
resp.setContentType();
resp.getWriter().write();
}
}


