我对Spring MVC的简单理解

·  阅读 1521

MVC设计模式

MVC是 Model、View、Controller的缩写,分别代表web应用程序的三种指责。

  • 模型(Model):用于存储数据以及处理用户请求的业务逻辑
  • 视图(view):向控制器提交数据,现实模型中的数据
  • 控制器(Controller):根据试图提供的请求判断将请求和数据交给那个模型处理,将处理的有关结果交给那个视图更新显示。

基于Servlet的MVC模式的具体实现

  • 模型:一个或多个JavaBean对象,用于存储数据(实体模型,由JavaBean类创建)和处理业务逻辑(业务模型,由一般的Java类创建)。
  • 视图:一个或多个JSP页面,向控制器提交数据和为模型提供数据显示,JSP页面主要是使用HTML标记和JavaBean标记来显示数据。
  • 控制器:一个或多个Servlet对象,根据试图提交的请求进行控制,即将请求转发给处理业务逻辑的JavaBean,并将处理结果存放到实体模型JavaBean中,输出给视图显示。

Spring MVC的工作流程

  • 客户端请求提交到DispatcherServlet。
  • 由DispatcherServlet控制器寻找一个或多个HandlerMapping,找到处理请求的Controller。
  • DispatcherServlet将请求提交到Controller
  • Controller调用业务逻辑后返回ModelAndView
  • DispatcherServlet寻找一个或多个ViewResolver视图解析器,找到ModelAndView指定的视图
  • 视图负责将数据显示到客户端

Spring MVC接口

  • DispatcherServlet:Spring MVC所有的请求都经过DispatcherServlet统一分发,在DispatcherServlet将请求分发给Controller之前需要借助Spring MVC提供的HandlerMapping定位到具体的Controller。
  • HandlerMapping:负责完成客户请求到Controller的映射。
  • Controller:处理用户请求,和Servlet扮演的角色一致,一旦Controller处理完用户请求,将返回ModelAndView对象给DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和视图(View)。
  • ViewResolver:视图解析器,在Web应用中负责查找View对象,从而将相应结果渲染给客户。

Spring NVC注解

  • @Controller:声明某个类的实例是一个控制器
  • @RequestMapping:在基于注解的控制器类中可以为每个请求编写对应的处理方法
  • @Service
  • @Autowired

拦截器的定义

在Spring MVC框架中定义一个拦截器需要对拦截器进行定义和配置,定义一个拦截器可以通过两种方式:

  • 实现HandlerInterceptor接口或者继承HandlerInterceptor接口
  • 实现WebRequestInterceptor接口或者继承WebRequestInterCeptor接口
分类:
后端
标签:
分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改