springmvc不返回视图_10. SpringMVC框架概述

1、SpringMVC 概述

springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合。 springmvc是一个基于mvc的web层框架,方便前后端数据的传输. Spring MVC 拥有控制器,接收外部请求,解析参数传给服务层.

2、SpringMVC运行流程

7fa3c3b86be0314f6794676c0b71825a.png

步骤:

  1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;
  2. 前端控制器DispatcherServlet接收请求后,调用处理器映射HandlerMapping。
    处理器映射器根据请求的url找到处理该请求的处理器Handler(即Controller),将处理器Handler返回给前端控制器DispatcherServlet。
  3. DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:
    HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息
    数据转换:对请求消息进行数据转换。如String转换成Integer、Double等
    数据格式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等
    数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中
  4. Handler(自己的控制器)执行完成后,向DispatcherServlet 返回一个ModelAndView对象;
  5. 根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet ;
  6. ViewResolver 结合Model和View,来渲染视图
  7. 将渲染结果返回给客户端。

3、SpringMVC 组件

  • DispatcherServlet:Spring中提供了org.springframework.web.servlet.DispatcherServlet类,它从HttpServlet继承而来,它就是Spring MVC中的前端控制器(Front controller)。
  • HandlerMapping:DispatcherServlet自己并不处理请求,而是将请求交给页面控制器。那么在DispatcherServlet中如何选择正确的页面控制器呢?这件事情就交给HandlerMapping来做了,经过了HandlerMapping处理之后,DispatcherServlet就知道要将请求交给哪个页面控制器来处理了。
  • HandlerAdapter:经过了HandlerMapping处理之后,DispatcherServlet就获取到了处理器,但是处理器有多种,为了方便调用,DispatcherServlet将这些处理器包装成处理器适配器HandlerAdapter,HandlerAdapter调用真正的处理器的功能处理方法,完成功能处理;并返回一个ModelAndView对象(包含模型数据、逻辑视图名)。
  • ModelAndView:DispatcherServlet取得了ModelAndView之后,需要将把逻辑视图名解析为具体的View,比如jsp视图,pdf视图等,这个解析过程由ViewResolver来完成。
  • ViewResolver:ViewResolver将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术。
  • View:DispatcherServlet通过ViewResolver取得了具体的view之后,就需要将model中的数据渲染到视图上,最终DispatcherServlet将渲染的结果响应到客户端。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值