SpringMVC运行流程

 Spring的web框架是一个请求驱动的web框架,其设计围绕一个中心的servlet进行,它能将请求分发给控制器,并提供其它功能帮助web应用开发。然而,Spring的DispatcherServlet所做的不仅仅是这些,它和Spring的IoC容器完全集成在一起,从而允许你使用Spring的其它功能。

下图展示了DispatcherServlet对请求的处理流程。


图1 SpringMVC请求处理流程

 Spring运行流程描述:

1)用户请求首先到达应用服务器如Tomcat,然后发送到前端控制器DispatcherServlet。

2)DispacherServlet将用户请求交给映射处理器HandlerMapping。HandlerMapping获得该Handler配置的所有相关的对象(包括

 Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain的形式返回给DispatcherServlet。

 3)DIspatcherServlet根据获得的Handler选择一个合适的处理适配器(HandlerAdapter)(如果成功获得HandlerAdapter对象,将先执行拦截

器的preHandler()方法)。

4)该HandlerAdapter会调用自己的handle方法,handle方法运用java的反射机制执行controller的具体方法来获得ModelAndView。

 根据不同的配置,Spring在这里还可以做一些额外的工作。

  •  HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息
  •  数据转换:对请求消息进行数据转换。如String转换成Integer、Double等
  •  数据根式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等
  •   数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中

        5)处理适配器将从Handler(Controller)中得到的ModelAndView信息返回给DispatcherServlet。

        6)根据返回的View对象选择一个合适的视图解析器(必须是Spring容器中已经注册的解析器如InternalResourceViewResolver)。

        7)将视图和模型进行整合渲染呈现给用户页面。






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

        请填写红包祝福语或标题

        红包个数最小为10个

        红包金额最低5元

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

        抵扣说明:

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

        余额充值