一.SpringMVC
Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet,负责表述层(控制层)实现简化。 由于 Spring MVC 本身就是 Spring 框架的一部分,和 Spring 框架是无缝集成。 |
二.SSM框架主要作用
![]() |
三.SpringMVC 原理架构图
![]() |
四.SpringMVC 5大组件
1.DispatcherServlet 前端控制器 [ CEO ] web.xml/配置类配置生效 整个流程处理的核心,接收所有请求,协同其它组件。 2.HandlerMapping 处理器映射器 [秘书] 需要加入到IoC容器 存储url-->Controller映射关系.根据请求路径,找到处理请求的Controller 3. HandlerAdapter 处理器适配器 [经理] 需要加入到IoC容器 简化处理请求参数和处理响应数据数据,调用控制器Controller 4. Controller 控制器 [打工人] 需要加入到IoC容器 程序员自己定义,处理业务请求,调用service层,最终返回响应结果. 5. ViewResolver 视图解析器 [财务] 简化模版视图页面查找,将ModelView对象中view逻辑视图生成真实的物理视图 如:index---->/index.jsp |
五.SpringMVC构建web项目步骤,注解+配置类的方式实现 (推荐)
1. maven创建web项目
![]() |
2. 导入相关jar包坐标,以及引入tomcat插件
<dependencies> <!--jackson--> <!--lombok--> </dependencies> <plugins> |
注意:引入logback.xml日志文件
3. 创建web容器的初始化配置类, 替代web.xml
/** * SpringMVC程序的初始化入口,可以被web项目加载, * 加载Spring/SpringMVC配置类创建IOC容器,设置dispatcherServlet的访问地址 |
4. 创建springmvc配置类
/** * SpringMVC的配置类 * @EnableWebMvc:启用Spring MVC配置,它提供了处理HTTP请求、管理控制器、处理视图以及管理其他与Web相关组件的功能 |
5. 采用注解实现控制器处理请求
处理请求,只需要在Controller类中编写处理请求的方法
/** */ |
6. index.jsp页面展示商品信息
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> |
注意:el表达式无法正常显示,需要修改web.xml配置文件的版本为4.0
<?xml version="1.0" encoding="UTF-8"?> |
六.执行流程的底层实现
每当Web项目启动时,会自动调用WebApplicationInitializer接口的onStartup()方法。 在接口的AbstractDispatcherServletInitializer实现类的onStartup()方法中调用this.registerDispatcherServlet(servletContext)方法 在该方法中WebApplicationContext servletAppContext = this.createServletApplicationContext(); 调用createServletApplicationContext()方法,创建SpringIOC Web容器。 在该方法中AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();创建SpringIOC Web容器。 同时在接口的AbstractDispatcherServletInitializer实现类的onStartup()方法中调用this.registerDispatcherServlet(servletContext)方法 在该方法中FrameworkServlet dispatcherServlet = this.createDispatcherServlet(servletAppContext);创建DispatcherServlet对象。 registration.setLoadOnStartup(1); 设置DispatcherServlet自启动。 registration.addMapping(this.getServletMappings());设置DispatcherServlet访问地址。 |
七.SpringMVC相关注解
注解 | 描述 |
@Controller | 创建控制器类的对象 |
@RequestMapping("url") | 指定处理请求的控制器的请求路径 |
@GetMapping("url") | 指定处理get请求的控制器的请求路径 |
@PostMapping("url") | 指定处理Post请求的控制器的请求路径 |
@EnableWebMvc | 启用Spring MVC配置,它提供了处理HTTP请求、管理控制器、处理视图以及管理其他与Web相关组件的功能 |
八.导入handlerMapping和handlerAdapter的三种方式
1.使用@Bean方式配置handlerMapper和handlerAdapter |