首页技术文章正文

SpringMVC的工作流程介绍

更新时间:2021年03月18日 08时58分10秒 来源:黑马程序员

SpringMVC的工作流程

SpringMVC的工作流程执行过程分析

1)用户向服务器发送请求,请求被Spring 前端控制器 DispatcherServlet捕获;

2)DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;

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

4)提取Request中的模型数据,填充Handler入参,开始执行Handler(也就是我们自己写的Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:

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

数据转换:对请求消息进行数据转换。如String转换成Integer、Double等

数据格式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等

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

5)Handler执行完成后,向DispatcherServlet 返回一个ModelAndView对象;

6)根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet ;

7)ViewResolver 结合Model和View,来渲染视图

8)将渲染结果返回给客户端。

Springmvc的优点

1)它是基于组件技术的。全部的应用对象,无论控制器和视图,还是业务对象之类的都是 java组件。并且和Spring提供的其他基础结构紧密集成。

2)不依赖于Servlet API(目标虽是如此,但是在实现的时候确实是依赖于Servlet的)

3)可以任意使用各种视图技术,而不仅仅局限于JSP。比如:PDF,Excel

4)支持各种请求资源的映射策略

5)它是易于扩展的

猜你喜欢:

黑马程序员13天Java进阶视频教程

Java中接口和抽象类的区别?

Java三大技术平台是什么?

黑马程序员高级Java工程师培训课程

分享到:
在线咨询 我要报名
和我们在线交谈!