Spring MVC
来源:互联网 发布:linux mount ntfs 编辑:程序博客网 时间:2024/06/08 19:42
Spring MVC
Spring MVC工作原理:
1.启动服务器,根据web.xml的配置加载前端控制器DispatcherServlet;在加载时、会完成一系列的初始化动作
2.根据servlet 的映射请求(上面的helloWorld 实例中针对.do 请求),并参照“控制器配置文
件”(即spmvc-servlet.xml 这样的配置)文件,把具体的请求分发给特定的后端控制器进行处理(比
如上例会分发给HelloWorld 控制器进行处理)
2.1Springmvc默认加载WEB-INF/[前端控制器的名字]-servlet.xml,也可以在前端控制器定义处指定加载的配置文件,如下:
<init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> 如上代码,通过contextConfigLocation加载classpath下的springmvc.xml配置文件。
3.后端控制器调用相应的逻辑层代码,完成处理并返回视图对象( ModelAndView )给前端处理器。
4.前端控制器根据后端控制器返回的 ModelAndView 对象,并结合一些配置(后面有说明),返回一
个相应的页面给客户端
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. 将渲染结果返回给客户端。
0 0
- spring mvc
- spring mvc
- spring mvc
- spring,MVC
- Spring MVC
- spring mvc
- Spring-MVC
- Spring MVC
- Spring MVC
- Spring MVC
- SPring MVC
- spring mvc
- Spring mvc
- spring MVC
- spring mvc
- spring mvc
- spring mvc
- Spring MVC
- 二维图像的时频变换
- 研究生周报(第四次) 2016/10/29-2016/11/04
- JavaScript之数组去重
- 白话Https
- AndroidMainfest.xml详解——<receiver>
- Spring MVC
- MS DataGrid导出Excel
- spark入门学习(1)---利用akka建立最基础的通信框架
- Proc *C/C++入门之指示器变量
- query.scroll()和query.setFirstResult(),query.setMaxResults();
- 17 - 03 - 14 图解HTTP(18)
- LSGO代码小组第18周复盘日志
- 研究生周报(第五次) 2016/11/05-2016/11/11
- 《程序员的修炼之道》读书笔记