zoukankan
html css js c++ java
Spring MVC 工作流程
图一
图二
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.将渲染结果返回给客户端。
查看全文
相关阅读:
C++ 引用做左值
C++ 引用本质的详解
C++ 引用基础
C语言错误 指针的类型错误
C++ c++与C语言的区别(三目运算符,const修饰符)
C++ c++与C语言的区别(struct类型的加强,函数-变量类型加强,bool类型)
C++ c++与C语言的区别(实用性增强,register关键字增强,全局变量检测增强)
C++ c++初识
C语言 Linux内核链表(企业级链表)
C语言 结构体中属性的偏移量计算
原文地址:https://www.cnblogs.com/zhangzack/p/9977178.html
最新文章
jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class
java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
如何使用git,进行项目的管理
No active profile set, falling back to default profiles: default
开发环境搭建之springboot+tk.mybatis整合使用逆向工程
.gitignore文件配置的内容为:
Failed to bind properties under 'logging.level' to java.util.Map<java.lang.String, java.lang.String>
开发搭建环境之springboot配置logback日志管理
No converter found capable of converting from type [java.lang.String] to type [java.util.Map<java.lang.String, java.lang.String>]
lomback插件在日志管理方面的应用
热门文章
正则表达式
SpringMVC数据库链接池,以及其他相关配置
Spring的辅助类
SpringMVC配置数据库连接池
SpringMVC配置
一个项目中哪些文件是要上传到 git上的,哪些是不必要的
Java数据类型和MySql数据类型对应表
表单数据相关
Koala---Less编译器
数据库事务
Copyright © 2011-2022 走看看