SpringMVC请求流程

 SpringMVC请求流程

        SpringMVC请求处理流程分析

                

        

        Handler会做数据准备或数据模型或业务逻辑等等。

        SpringMVC框架也是一个基于请求驱动的Web框架,并且使用了前端控制器模式(是用来提供一个集中的请求处理机制,所有的请求都将由一个单一的处理程序处理来进行设计,再根据请求映射规则分发给相应的页面控制器(动作/处理器)进行处理。首先让我们整体看一下SpringMVC处理请求的流程:

        1、首先用户发送请求,请求被SpringMVC前端控制器(DispatherServlet)捕获;

        2、前端控制器(DispatherServlet)对请求URL解析获取请求URI,根据URI,调用HandlerMapping;

        3、前端控制器(DispatherServlet)获得返回的HandlerExecutionChain,(包括Handler对象以及Handler对象应用的拦截器);

        4、DispatherServlet根据获得的HandlerExecutionChain,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(...)方法);

        5、HandlerAdapter根据请求的Handler适配并执行对应的Handler;HandlerAdapter(提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。在填充Handler的入参过程中,根据配置,Spring将做一些额外的工作:

        HttpMessageConveter:将请求消息(如Json、xml等数据)转换成一个对象,将对象转换成为指定的响应信息。

        数据转换:对请求信息进行数据转换。如String转换成Integer、Double等数据格式化;

        数据格式化:如将字符串转换成格式化数字或格式化日期等;

        数据验证:验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中)

        6、Handler执行完毕,返回一个ModelAndView(即模型和视图)给HandlerAdaptor;

        7、HandlerAdaptor适配器将执行结果ModelAndView返回给前端控制器;

        8、前端控制器接收到ModelAndView后,请求对应的视图解析器;

        9、视图解析器解析ModelAndView后返回对应View;

       10、渲染视图并返回渲染后的视图给前端控制器;

       11、最终前端控制器将渲染后的页面响应给用户或客户端。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值