zoukankan      html  css  js  c++  java
  • Spring MVC 底层原理

    Spring MVC处理的流程:

    具体执行步骤如下:

      1 首先用户发送请求给前端控制器,前端控制器根据请求信息(如url)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图中的1、2步骤

      2 页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在spring web mvc中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;

         处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图中3、4、5步骤

      3 前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图中的6、7步骤

      4 前端控制器再次收回控制权,将响应返回给用户,图中的步骤8

    Spring MVC 的运行原理

      

       首先,用户向服务器发送请求,请求被前端控制器DispatcherServet截获
    
     
      DispatcherServlet没有业务处理的能力,调用HandlerMapping处理器映射器   HandlerMapping根据xml配置和注解找到具体的Handler,并将处理器执行链(包括Handler和拦截器数组)返回给DispatcherServlet   
      DispatcherServlet调用HandlerAdapter处理器适配器   HandlerAdapter经过适配器调用具体的处理器(Controller,也称后端控制器)   Controller执行完返回ModleAndView   HandlerAdapter将ModleAndView返回给DispatcherServlet   
      DispatcherServlet将ModleAndView传给ViewReslover视图解析器   ViewReslover解析后返回具体的View   Dispatcher根据View进行视图渲染(将Modle填充至View)   
      DispatcherServlet响应用户

    springMVC执行细节:

      DispatcherServlet在执行时会加载默认的配置文件:DispatcherServlet.properties来加载相关组件

         可以在springMVC-servlet.xml中更改配置:

        <!-- 视图解析器 -->
        <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp" />
        </bean>
        <!-- 处理器映射器 -->
        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
        <!-- 处理器适配器 -->
        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>

        也可以使用注解驱动来代替上面的 处理器映射器 和处理器适配器的配置:

        <!-- 配置注解驱动 -->
        <mvc:annotation-driven />
  • 相关阅读:
    HDU 4691
    cin和scanf的速度差别
    一点点webservice的小知识
    Geetest 极验验证 验证图片拼图
    web api post传一个参数时 值永远是null
    关于支付宝支付的
    发布网站后只能在服务器上访问 外网访问不了??
    sidePagination: "server"和responseHandler: responseHandler
    .net 找回密码的第一步 第二步 第三步的进程条
    关于设置一个全局只读变量来实现验证
  • 原文地址:https://www.cnblogs.com/roxy/p/7599936.html
Copyright © 2011-2022 走看看