SpringMVC理论基础

最近跟随慕课网学习SpringMVC框架的相关知识,并结合自己的项目经验整合了一个SpringMVC+Spring+Mybatis的框架( 基于Maven整合SpringMVC、Spring和Mybatis框架http://blog.csdn.net/sunglee_1992/article/details/53064946)。现将笔记于此,以备后查,欢迎讨论。


1、MVC简介

1.1前端控制器

MVC是开发WEB应用程序的通用架构方式。

这里写图片描述

    首先,用户端的请求通过http协议到达Front controller(前端控制器),Front controller了解该请求应当被谁处理,故该请求代理给了具体的控制器,控制器了解业务逻辑的细节,因此调用业务逻辑生成了业务数据,并将业务数据返回给了前端控制器。此时,前端控制器再将这些业务数据分发给业务视图,由业务试图呈现最终的用户页面,再将呈现好的用户页面返还给前端控制器,并最终将页面返回给浏览器端。

MVC的核心思想是业务数据抽取同业务数据呈现相分离。

1.2MVC概念

View:视图层,为用户提供UI,重点关注数据的呈现。

Model:模型层,业务数据的信息表示,关注支撑业务的信息构成,通常是多个业务实体的组合。

Controller:调用业务逻辑产生合适的数据(Model),传递数据给视图层用于显示。

MVC是一种架构模式,程序分层,分工合作,既相互独立,又协同工作。

MVC是一种思考方式,(M)需要将什么信息展示给用户?(V)如何布局,(C)调用哪些业务逻辑。

2、Spring MVC中的概念

2.1静态概念

1.DispatcherServlet,前端控制器。用户请求通过DispatcherServlet到达合适的Controller,生成所需的业务数据Model,Model再通过DispatcherServlet进行传递,给View,完成页呈现,MVC将数据的业务逻辑和页面呈现的分离就是通过DispatcherServlet实现的。

2.Controller,控制器,调用业务逻辑生成Model。

3.HandlerAdapter,Handler是在DispatcherServlet内部使用的一个类,其实就是Controller的表现形式。

4.HandlerInterceptor,拦截器,是一个接口,有如下

preHandle(HttpServletRequest request,HttpServletResponse response,Object handler),

postHandle(HttpServletRequest request,HttpServletResponse response,Object handler,ModelAndView modelAndView),

afterCompletion(HttpServletRequest request,HttpServletResponse response,Object handler,Exception ex),

三个方法,如果配置了这个类,并提供了实现,就可以在调用Controller之前(后)以及最终在我们的Model发送到了页面(View)完成了呈现之后,可以做很多事情。

5.HandlerMapping,Handler是Dispatcher调用Controller的一种中间过渡对象;Mapping是DispatcherServlet与Controller之间映射关系的一种类。

(1)Help DispatcherServlet to get the right controller
(2)Wrap controller with HandlerInterceptor.

不过过程多复杂, 在HandlerMapping 工作完成之后,它可以给DispatcherServlet一个HandlerAdapter,这个HandlerAdapter里包括了核心的内容是某个具体的Controller的实例,第二方面就是这个Controller需要被包裹的HandlerInterceptor,他们会构成一个执行的链条往下走。

6.HandlerExecutionChain,HandlerMapping工作完成后返回Handler、Adapter、Interceptor构成执行链条:
Prehandle——Controller method——postHandle——afterCompletion

7.ModelAndView,Model的一种表现形式,Model类,Java中的Map类,都可以实现Model的功能,不管是Model还是Map,但是DispatcherServlet都会将其转化为ModelAndView。

8.ViewResolver,视图解析器,他会告诉DispatcherServlet需要用哪个视图进行呈现,他的作用就是根据配置找出所需的视图对象,如jstl,jsp等。

9.View,呈现页面。

2.2动态概念

这里写图片描述

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值