入门 SpringMVC:Web 开发的经典选择
初学 Java Web?想搞懂请求是怎么从浏览器传到服务器?SpringMVC 作为 Web 三层架构的控制核心,是必须掌握的一环。本篇博客将带你系统了解 SpringMVC 的核心概念、技术栈、常用注解与开发流程,适合初学者入门!
一、什么是 SpringMVC?
SpringMVC(Model-View-Controller)是 Spring 框架的一个子模块,用于构建 Web 应用。它是一个基于 请求驱动 的 Web 框架,遵循 MVC 设计模式,将请求处理、业务逻辑和视图展示分离。
SpringMVC 最大的特点是使用注解简化配置,结合 Spring 容器实现轻量、灵活的 Web 架构。
二、SpringMVC 在 Web 开发中的地位
在典型的三层架构中:
- 表现层(Controller):使用 SpringMVC 负责接收请求、返回页面或 JSON。
- 业务层(Service):处理业务逻辑。
- 数据访问层(DAO/Mapper):操作数据库,常配合 MyBatis、JPA。
SpringMVC 是 Web 层的重要组成部分,直接对接浏览器请求。
三、SpringMVC 的核心工作流程
SpringMVC 的执行流程可概括为:
- 浏览器发起请求,经过 DispatcherServlet。
- DispatcherServlet 查找 HandlerMapping,定位到目标 Controller。
- 调用对应的 Handler(即 Controller 方法)。
- 方法执行完返回 ModelAndView 或数据。
- DispatcherServlet 调用 ViewResolver 渲染视图或返回数据。
简图如下:
用户请求 → DispatcherServlet → HandlerMapping →Controller← ViewResolver ← ModelAndView ← Controller返回视图/数据 ← DispatcherServlet ←
四、SpringMVC 核心知识点(注解)
注解 | 说明 |
---|---|
@Controller | 声明控制器类,处理 Web 请求 |
@RequestMapping | 映射请求路径到方法(支持 GET/POST 等) |
@GetMapping / @PostMapping | 快捷注解,更明确请求方式 |
@RequestParam | 绑定请求参数到方法参数 |
@PathVariable | 绑定 URL 中的动态路径变量 |
@ModelAttribute | 参数预处理,或者传值给视图 |
@ResponseBody | 返回 JSON 或文本数据 |
@RestController | @Controller + @ResponseBody ,用于 REST 风格接口 |
五、SpringMVC 技术栈搭配(配套组件)
技术 | 用途 | 推荐版本 |
---|---|---|
Spring Framework | 容器、核心支持 | 5.x / 6.x |
SpringMVC | Web 控制器 | 与 Spring 一致 |
Spring Boot(可选) | 快速开发集成 | 2.x / 3.x |
MyBatis / JPA | 数据持久化 | 根据项目需求 |
JSP / Thymeleaf | 模板引擎 | 学习建议 JSP |
Servlet API | 底层依赖 | Java EE 提供 |
Tomcat | 本地运行容器 | 8+ |
Maven / Gradle | 构建工具 | Maven 更适合初学者 |
六、SpringMVC 的常见功能点
- 请求映射:多方式绑定 URL 与方法
- 参数绑定:自动将请求参数封装为对象或基本类型
- 页面跳转与重定向:支持
forward:
与redirect:
- 表单处理:支持文件上传、表单回显、校验
- RESTful 支持:使用
@RestController
返回 JSON 数据 - 全局异常处理:
@ControllerAdvice + @ExceptionHandler
- 拦截器机制:可用于登录验证、日志记录等
七、SpringMVC 学习建议
- 掌握请求-响应流程:理解 DispatcherServlet 的调度机制。
- 动手搭建小项目:如“简易博客系统”、“留言板”。
- 结合 Spring 容器理解依赖注入:控制反转是 Spring 的灵魂。
- 逐步引入 Spring Boot(可选):学习统一配置与快速集成。
- 多写、多调试:SpringMVC 的学习核心在实践。
八、总结
SpringMVC 是传统 Java Web 开发的基础框架之一,它帮助我们用更清晰的方式处理请求、返回页面与数据。如果你正在学习 Java Web,SpringMVC 是非常值得投入时间深入学习的第一站。
九、搭建第一个SpringBoot MVC项目
(顶部有PDF文件)
新建项目
注意 : 创建位置 、JDK版本、Archetype
等待Maven环境配置完成
在maven中导入以下依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2 </version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
点击maven更新按钮更新maven
在src文件下补齐缺失目录(java)
检查项目结构是否包含(java、resource、webapp)
新建目录 webapp
打开项目结构
添加 Web框架
创建完成后检查webapp是否和上图一样
新建软件包(com.test.controller)
在springmvc-servlet.xml中插入以下代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd">
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
</beans>
继续在插入的代码下面把注解驱动、扫包和视图解析配置完成
注意:base-package 后面是controller包的地址
/WEB_INF/jsp/,是jsp文件存放的地址
在webapp下WEB-INF下的web.xml中插入以下配置
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
在controller包下新建HelloController类
在HelloController 添加代码
在WEB-INF目录下创建目录(jsp)
在index.jsp文件中编写内容
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>SpringMVC</title>
</head>
<body>
${msg}
</body>
</html>
配置Tomcat