Spring MVC框架概述

简要概述

springmvc框架原理

  • 前端控制器
  • 处理器映射器
  • 处理器适配器
  • 视图解析器

处理器适配中的注解开发一定要懂

springmvc注解开发

  • 常用的注解
  • 参数绑定(Request请求过来的参数,要被框架接收然后处理)
    • 简单类型
    • POJO(Plain Old Java Object,简单老式java对象)
    • 自定义参数绑定

什么是spring mvc

  • spring mvc是在表现层的东西
  • spring mvc是spring框架的一个模块,spring mvc和spring不需要通过中间整合层进行整合,本来就是spring自己的一部分
  • 是一个基于mvc的web框架

    什么是mvc

  • mvc是一种设计模式

在B/S系统中,模型(Model)是没有办法直接把数据填充到视图(View)里面的,需要把数据返回给控制器(Controller),然后控制器拿着数据去渲染页面,同时给用户一个response相应。

  • 模型(Model)
    这是一个很大的概念,不仅仅是pojo,action、service、dao都是模型的一部分。
  • 控制器(Controller)
    这个在struts2中,就是filter,其实在spring mvc这边,这个叫前端控制器。spring mvc中是servlet,名字叫DispatcherServlet
    action也被叫做后端控制器,在spring mvc中,是 Handler处理器,平常被叫作Controller。
  • 映射处理器(HandlerMapping)
    前端控制器接收到的数据后要调用Handler,但是前端控制器不知道具体是哪个handler来处理这个url请求,所以这两个东西中间要有另外一层,来告诉前端控制器,去调用具体哪一个handler,这就是处理器映射器(HanlerMapping)

映射处理器返回的是一个执行链(HandlerExecutionChain),是一个底层的封装类

1
2
3
4
5
6
7
8
HandlerExecutionChain{
//可以有多个拦截器
HandlerInterceptor1
HandlerInterceptor2
Handler
}

从Request到Response

步骤

  1. 发起请求到前端控制器(DispatcherServlet)
  2. 前端控制器请求HandlerMapping查找 Handler
    可以根据xml配置、注解进行查找
  3. 处理器映射器HandlerMapping向前端控制器返回Handler
  4. 前端控制器调用处理器适配器去执行Handler
  5. 处理器适配器去执行Handler
  6. Handler执行完成给适配器返回ModelAndView
  7. 处理器适配器向前端控制器返回ModelAndView
    ModelAndView是springmvc框架的一个底层对象,包括 Model和view
  8. 前端控制器请求视图解析器去进行视图解析
    根据逻辑视图名解析成真正的视图(jsp)
  9. 视图解析器向前端控制器返回View
  10. 前端控制器进行视图渲染
    视图渲染将模型数据(在ModelAndView对象中)填充到request域
  11. 前端控制器向用户响应结果

组件

  • 前端控制器DispatcherServlet(不需要程序员开发
    作用接收请求,响应结果,相当于转发器,中央处理器。
    有了DispatcherServlet减少了其它组件之间的耦合度。
  • 处理器映射器HandlerMapping(不需要程序员开发)
    作用:根据请求的url查找Handler
  • 处理器适配器HandlerAdapter
    作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler
  • 处理器Handler(需要程序员开发)
    注意:编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler
  • 视图解析器View resolver(不需要程序员开发)
    作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)
  • 视图View(需要程序员开发jsp)
    View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…)

需要开发的,就是view中的jsp和处理器Handler。