抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

思维导图

微信公众号已开启:【java技术爱好者】,还没关注的记得关注哦~

文章已收录到我的Github精选,欢迎Starhttps://github.com/yehongzhi/learningSummary

概述

SpringMVC再熟悉不过的框架了,因为现在最火的SpringBoot的内置MVC框架就是SpringMVC。我写这篇文章的动机是想通过回顾总结一下,重新认识SpringMVC,所谓温故而知新嘛。

为了了解SpringMVC,先看一个流程示意图:

从流程图中,我们可以看到:

  • 接收前端传过来Request请求。
  • 根据映射路径找到对应的处理器处理请求,处理完成之后返回ModelAndView。
  • 进行视图解析,视图渲染,返回响应结果。

总结就是:参数接收,定义映射路径,页面跳转,返回响应结果

当然这只是最基本的核心功能,除此之外还可以定义拦截器,全局异常处理,文件上传下载等等。

一、搭建项目

在以前的老项目中,因为还没有SpringBoot,没有自动配置,所以需要使用web.xml文件去定义一个DispatcherServlet。现在互联网应用基本上都使用SpringBoot,所以我就直接使用SpringBoot进行演示。很简单,引入依赖即可:

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

二、定义Controller

使用SpringMVC定义Controller处理器,总共有五种方式。

2.1 实现Controller接口

早期的SpringMVC是通过这种方式定义:

1
2
3
4
5
6
7
8
9
10
11
12
13
/**
* @author Ye Hongzhi 公众号:java技术爱好者
* @name DemoController
* @date 2020-08-25 22:28
**/
@org.springframework.stereotype.Controller("/demo/controller")
public class DemoController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
//业务处理
return null;
}
}

2.2 实现HttpRequestHandler接口

跟第一种方式差不多,也是通过实现接口的方式: