- 浏览: 16052 次
- 性别:
- 来自: 北京
文章分类
最新评论
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. 将渲染结果返回给客户端。
Spring工作流程描述
为什么Spring只使用一个Servlet(DispatcherServlet)来处理所有请求?
详细见J2EE设计模式-前端控制模式
Spring为什么要结合使用HandlerMapping以及HandlerAdapter来处理Handler?
符合面向对象中的单一职责原则,代码架构清晰,便于维护,最重要的是代码可复用性高。如HandlerAdapter可能会被用于处理多种Handler。
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. 将渲染结果返回给客户端。
Spring工作流程描述
为什么Spring只使用一个Servlet(DispatcherServlet)来处理所有请求?
详细见J2EE设计模式-前端控制模式
Spring为什么要结合使用HandlerMapping以及HandlerAdapter来处理Handler?
符合面向对象中的单一职责原则,代码架构清晰,便于维护,最重要的是代码可复用性高。如HandlerAdapter可能会被用于处理多种Handler。
发表评论
-
SpringMVC+ajaxFileUpload上传图片 IE浏览器弹下载框问题解决方案
2017-05-08 08:42 284SpringMVC+ajaxFileUpload上传图片 IE ... -
简单webservice(cxf)实例
2017-04-11 08:56 346我们的环境是eclipse , maven。 在开发java ... -
网站架构之架构演化
2017-03-30 13:50 292http://www.cnblogs.com/pflee/p/ ... -
线程,
2017-03-10 09:07 268http://www.cnblogs.com/wxd0108/ ... -
springmvc<一>一种资源返回多种形式【ContentNegotiatingViewResolver】
2017-03-01 09:53 399springmvc<一>一种资源返回多种形式【Co ... -
<context-param>与<init-param>的区别与作用(转载)
2017-02-28 13:45 357<context-param>的作用: web.x ... -
sqlserver日期格式化函数
2016-09-21 10:16 427Sql Server 中一个非常强大的日期格式化函数 ... -
玩转cookie(转载度娘http://jingyan.baidu.com/article/7c6fb4281f4e5580642c90d0.html)
2015-11-09 10:53 704怎么在java中增加一个cookie; 怎么在java中修改 ... -
jquery插件开发(http://www.poluoluo.com/jzxy/201204/163035.html)
2015-01-25 21:40 496一.介绍 插件编写的目 ... -
hibernate各种查询汇总(转载)
2014-12-23 15:16 3331. 查询整个映射对象所有字段 Java代码 // ... -
hibernate各种查询汇总(转载)
2014-12-23 15:16 01. 查询整个映射对象所有字段 Java代码 // ... -
JAVA多线程实现和应用总结(转载自http://www.cnblogs.com/yezhenhan/archive/2012/01/09/2317636.)
2014-12-22 15:27 474JAVA多线程实现和应用总 ... -
ResultSet rs 之 rs.next()(转载自百度一哥们)
2014-12-16 15:10 754ResultSet rs是结果集。查询出的记录是一个列表,初始 ... -
ResultSet rs 之 rs.next()
2014-12-16 15:10 801ResultSet rs是结果集。查询出的记录是一个列表,初始 ... -
java substring
2014-12-15 17:12 491java substring 方法 str=str.subst ... -
PLSQL插入数据中文乱码的问题(转)
2014-11-26 16:33 3892PLSQL插入数据中文乱码的问题 www.111cn.net ... -
遍历Map的四种方法 (转载)
2014-11-25 10:21 368public static void main(String[ ... -
sql执行顺序
2014-10-08 09:57 270SQL Select语句完整的执行顺序:1、from子句组装来 ... -
jms简明学习教程(转载)
2014-09-04 15:55 413基础篇 JMS是应用系统或组件之间相互通信的应用程序接口,利 ... -
MYSQL数据库事务处理和锁机制(转载)
2014-09-03 14:37 763一、数据库事务的百科 数据库事务(Database Tran ...
相关推荐
博客 https://gudianxiaoshuo.blog.csdn.net/article/detail VUE 组件示例
博客https://blog.csdn.net/weixin_49457347/article/details/1236所需文件
weUI 入门教程:http://blog.csdn.net/libin_1/article/details/50734266
来自博客http://blog.csdn.net/uq_jin/article/details/51484890的代码
+viewpager+listview(adapterview)recyclerview scrollview webviewblog//blog.csdn.net/w7822938/article/details/47173047/demo-apk,可30452;
busybox-1.32.0._tar__.bz2文件系统: https://blog.csdn.net/tan1666/article/details/123156383
https://blog.csdn.net/a6661314/article/details/124358796的实验文件
https://jiejie.blog.csdn.net/article/details/82743945
接前两篇文章,[小学生python游戏编程3----拼图游戏-准备](https://blog.csdn.net/fqfq123456/article/details/127173684),[小学生python游戏编程4----拼图游戏今天]...,上次写到可以打乱图片,拼成游戏界面,今天...
用于:https://laoshifu.blog.csdn.net/article/details/138191428 springboot多层文件夹创建,包含了多层文件夹结构。但是还没有带入代码。
http://blog.csdn.net/qq282133/article/details/7616809
https://blog.csdn.net/zhang24360/article/details/83098575文章里面所介绍
https://yydatav.blog.csdn.net/article/details/120705616 更多Java SpringBoot&Echarts版的数据可视化大屏源码: https://yydatav.blog.csdn.net/article/details/123652970 更多《工厂订单出入库信息管理系统》...
KITTI数据集可视化教程,教程:https://blog.csdn.net/cg129054036/article/details/119516704
Predict if the car purchased at the Auction is a good bad buy The dependent variable IsBadBuy is binary C2 There are 32 Independent variables C3 C34
详情看我的我的文章https://blog.csdn.net/wsxybz/article/details/128486717
官方地址:http://mhdd.com/,其他下载地址:https://hddguru.com/software/2006.02.10-Magic-Boot-Disk/,使用方法请参考我的博文:https://blog.csdn.net/sdnuwjw/article/details/90143711
http://blog.csdn.net/zhangerqing/article/details/8239539 https://my.oschina.net/viakiba/blog/795797
安装步骤:https://blog.csdn.net/qq_53810245/article/details/123674836
原博地址:http://blog.csdn.net/u013806766/article/details/52981497