【SpringMVC 入门介绍】
文章目录
- 前言
- 一、SpringMVC 是什么?
- 二、SpringMVC 的核心组件
- 三、SpringMVC 的运行流程
- 四、SpringMVC 快速入门示例
- 1. 项目结构示例(Maven 工程)
- 2. 配置 `web.xml`
- 3. 配置 `springmvc.xml`
- 4. 编写 Controller 类
- 5. 编写视图 `hello.jsp`
- 五、测试效果
前言
SpringMVC 是 Spring Framework 的一个模块,它基于 MVC(Model-View-Controller)架构模式,提供了 Web 应用开发的结构性解决方案。通过注解驱动方式,开发者可以快速构建高效、可维护的 Web 应用。
一、SpringMVC 是什么?
SpringMVC 是 Spring Framework 提供的一套 Web 层解决方案,用于处理 HTTP 请求、响应并进行数据展示。它实现了 MVC 设计模式,将 Web 开发分为以下几个层次:
- Model(模型层):封装业务数据
- View(视图层):展示数据,如 JSP、Thymeleaf
- Controller(控制层):接收请求、调用业务逻辑并返回视图
二、SpringMVC 的核心组件
组件 | 描述 |
---|---|
DispatcherServlet | 前端控制器,统一请求入口 |
HandlerMapping | 根据请求 URL 匹配对应的处理器 |
HandlerAdapter | 调用具体的 Controller 处理方法 |
Controller | 编写业务逻辑的类 |
ViewResolver | 将逻辑视图名解析为具体视图 |
View | 最终呈现结果(JSP、HTML) |
三、SpringMVC 的运行流程
- 用户发起请求,DispatcherServlet 拦截
- DispatcherServlet 调用 HandlerMapping 找到对应的 Handler(控制器)
- 通过 HandlerAdapter 执行对应 Controller 方法
- Controller 返回 ModelAndView 对象
- DispatcherServlet 调用 ViewResolver 解析视图
- 返回最终视图给浏览器
示意图如下:
浏览器 -> DispatcherServlet -> HandlerMapping -> Controller -> ViewResolver -> View -> 浏览器
四、SpringMVC 快速入门示例
1. 项目结构示例(Maven 工程)
springmvc-demo
├── src
│ └── main
│ ├── java
│ │ └── com.example.controller.HelloController
│ └── webapp
│ ├── WEB-INF
│ │ ├── web.xml
│ │ └── views/hello.jsp
│ └── index.jsp
2. 配置 web.xml
<web-app><servlet><servlet-name>springDispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>springDispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
</web-app>
3. 配置 springmvc.xml
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="..."><!-- 开启注解驱动 --><mvc:annotation-driven /><!-- 扫描 Controller 包 --><context:component-scan base-package="com.example.controller" /><!-- 配置视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/" /><property name="suffix" value=".jsp" /></bean>
</beans>
4. 编写 Controller 类
package com.example.controller;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;@Controller
public class HelloController {@RequestMapping("/hello")public ModelAndView sayHello() {ModelAndView mv = new ModelAndView("hello");mv.addObject("msg", "Hello SpringMVC!");return mv;}
}
5. 编写视图 hello.jsp
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head><title>Hello</title></head>
<body><h2>${msg}</h2>
</body>
</html>
五、测试效果
启动服务器(如 Tomcat),访问:
http://localhost:8080/hello
页面应显示:
Hello SpringMVC!