SpringMVC的简单介绍
一、SpringMVC介绍
1.1 简介
- SpringMVC是Spring框架的一部分,是基于Java实现MVC轻量级Web框架
- (SpringMVC底层还是Servlet)
1.2 特点
- (1)轻量级,简单易学
- (2)高效,基于请求响应的MVC框架(处理请求,返回视图)
- (3)与Spring兼容性好,无缝结合
- (4)约定优于配置
- (5)功能强大:RESTful、数据验证、格式化、本地化、主题等
- (6)简介灵活
1.3 实例演示:配置文件实现
- SpringWeb框架围绕DispatcherServlet设计,DispatcherServlet的作用是将请求分发到不同的处理器。
- SpringMVC框架,和其他MVC框架一样,一请求为驱动,围绕一个中心Servlet分派请求级提供其他功能,DispatcherServlet是一个世纪的Servlet
- 本框架全部是基于Maven来实现导包,不再手动导包
- (1)创建Maven空白项目
- (2)右键项目名称,添加web项目支持


- (3)Maven的pom.xml设置导包
1 |
|
- (4)创建JSP页面
- 在/WEB-INF/jsp,下创建一个hello.jsp
1 | <%@ page contentType="text/html;charset=UTF-8" language="java" %> |
- (5)建包,并创造类实现Controller接口
- 创建一个包,并创建一个HelloController.java的类
1 | public class HelloCotroller implements Controller { |
- (6)在Resources包下创建SpringMVC的配置文件
- 在src/main/resources下创建一个Spring配置文件,名字为springmvc-servlet.xml
1 |
|
- (7)在web.xml注册Servlet
1 |
|
- (8)整体目录结构

- (9)配置Tomcat服务器




- (10)点击启动按,启动tomcat

- (11)网页输入:http://localhost:8080/hello

二、SpringMVC执行原理
2.1 各文件功能
- (1)web.xml
- 注册SpringMVC自带的Servlet
- 页面跳转经过此Servlet进行处理
1 | <!--配置DispatcherServlet:前端控制器--> |
- (2)SpringMVC配置文件
- 开启映射器,适配器,视图解析器,配置关联的类
- 视图解析器:解析要跳转的页面
- 视图解析器,映射器,适配器都为SpringMVC自带的类,不用自己写
1 | <!--处理器映射器:此处理器会根据Bean来寻找--> |
- (3)Controller实现类
- 类实现接口,重写方法,并返回一个ModelAndView类的对象
1 | public class HelloController implements Controller { |
2.2 执行流程

(1)DispatcherServlet:表示前段控制器,是整个SpringMVC的控制中心,用户发送请求,DispatcherServlet接受请求并拦截请求
(2)HandlerMapping:处理器映射,由DispatcherServlet自行调用,HandlerMappping根据请求的url查找handler
(3)HandlerExecution:具体的Handler,根据url查找控制器controller,并将解析后的信息传递给DispatcherServlet(如:解析控制器映射)
(4)HandlerAdapter:处理器适配器,按特定的规则去执行Handler
(5)Handler让具体的Controller执行
(6)Controller将具体的执行信息返回HandlerAdapter,如MoudleAndView类
(7)HandlerAdapter将MoudleAndView传递给DispatcherServlet
(8)DispatcherServlet调用视图解析器(ViewResolver)来解析HandlerAdapter传递的ModelAndView
(9)视图解析器将解析的逻辑视图名传递给DispatcherServlet
(10)DispatcherServlet根据视图解析器解析的视图结果,调用具体的视图
(11)最终将视图呈现给用户
三、基于注解实现
3.1 操作实例
- (1)web.xml注册Servlet
- 配置方法和前面一样,就不添加注解解释了
1 |
|
- (2)创建SpringMVC的配置文件
- 开启注解扫描(Spring里学过)
- 加载mvc注解驱动
- 添加视图解析器
1 |
|
- (3)创建类,添加Controller注解
- 类添加Controller注解
- 类方法使用返回值为String的
- 如果需要先前端返回数据,使用Model对象进行返回
- 类方法添加RequestMapping,表示访问此方式时的网址路径
1 |
|
- (4)其他步骤和xml配置一样
- 创建jsp页面
- 启动tomcat
- 输入:http://localhost:8080/hello