zoukankan      html  css  js  c++  java
  • Spring MVC处理

    1.首先,用户发送请求,DispatcherServlet会拦截请求,但DispatcherServlet收到请求后不进行处理,而对URL进行解析得到相应的URI(资源标识符).

    2.DispatcherServlet调用用HandlerMapping,HandlerMapping的作用就是解析请求链接(URI),然后根据请求链接,找到合适的处理器Handler(所说的Handler,也就是ControllerAction),HandlerMapping但并不是简单的返回处理器,而是将处理器和拦截器封装,形成一个处理器执行链(HandlerExecuteChain)返回给DispatcherServlet.
    3.DispatcherServlet 根据获得的Handler类型,选择一个合适的HandlerAdapter.

    4.在HandlerAdapter执行前调用HandlerInterceptor的preHander()方法.

    5.HandlerAdapter定义了如何处理请求的策略,通过请求URI,请求Method和处理器的requestMapping定义,最终调用Handler(Controller)的方法来处理请求,完成功能.

    6.ControllerDispatcherServlet返回一个 ModelAndView 对象(包含模型数据,逻辑视图名字)

    7.根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet.
    8.DispatcherServlet 根据ModelAndView实例中的模型数据,逻辑视图名字把信息反馈给ViewResolver.
    9. ViewResolver用于处理视图,然后返回给客户端。
     

    如果是xml配置,在Spring.xml的配置文件中,记得进行HandlerMapping,HandlerAdapter和ViewResolver的注册,如果不进行注册,Spring将使用默认的注册.Controller类的添加,以便依赖注入
    如果是注解的配置,需要在Spring.xml中添加
    <context:annotation-config /> 
    <!-- 简化配置搭配@Resource、@PostConstruct、@PreDestroy等注解 -->
    <context:component-scan />
    <!-- 自动扫描包路径 -->
    <mvc:annotation-drivent />
    <!-- 它会自动注册DefaultAnnotationHanderMappint与AnnotationHanderAdapter这两个bean,不过缺点是无法再注入interceptors属性,就无法指定拦截器 -->
     
  • 相关阅读:
    Spring 整合 Redis
    Spring 整合 Redis
    C#,Java,MD5加密对等实现
    Java调用JavaWebService
    c#,Java aes加密
    Kettle环境变量配置
    Maven环境配置
    Win10,JDK8,tomact7.0.85配置
    ReverseEngineerCodeFirst 自定义模板
    Aspnet_Session
  • 原文地址:https://www.cnblogs.com/kirohuji/p/6897248.html
Copyright © 2011-2022 走看看