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
原创粉丝点击