博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring MVC 工作流程
阅读量:7145 次
发布时间:2019-06-29

本文共 888 字,大约阅读时间需要 2 分钟。

图一

1464728-20181118103234006-1513759717.png

图二

1464728-20181118103246521-1737493542.png

Spring工作流程描述

1.用户向服务器发送请求,请求被Spring 前端控制Servelt 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.将渲染结果返回给客户端。

转载于:https://www.cnblogs.com/zhangzack/p/9977178.html

你可能感兴趣的文章
Oracle流程控制语句
查看>>
仿CSDN客户端首页(二)----拖拽排序Tabs的实现
查看>>
openstack 虚拟机导出
查看>>
《Flash建站技术》系列6-LoadVars数据提交与表单处理
查看>>
Service Mesh:什么是Sidecar模式
查看>>
python string
查看>>
纠结:决策有依据、局限和方法,也有后果需要承担
查看>>
小米纪录片《一团火》上映,这团火烧到你了吗?
查看>>
一篇好的BUG报告是如何炼成的
查看>>
要做好性能测试,该掌握些什么?
查看>>
今天配置java + selenium 3.0出了很多问题,记录如下
查看>>
xen虚拟化里常用的一些配置
查看>>
在用vi编辑文件时遇到“Terminal too wide”的提示
查看>>
RHEL6和RHEL7的变化
查看>>
VMware 虚拟机设置U盘启动(老毛桃 PE)
查看>>
程序员注意了!这样的公司千万不要去!
查看>>
文件服务器--samba和ftp的搭建
查看>>
我的友情链接
查看>>
ubuntu 14.10桌面登陆失败
查看>>
java并发编程,ThreadLocal源码解析
查看>>