• 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属性,就无法指定拦截器 -->
     
  • 相关阅读:
    局部加权回归-新的回归思路,为每个样本订制个性化的模型
    Java Spring AOP
    Spring IOC DI 注解开发
    Java Spring IoC
    Pytest自动化测试
    Robot Framework 实现并行测试
    【解决】cannot list resource "services" in API group "" in the namespace "jmbymt"
    Pytest自动化测试
    Kube-prometheus监控jmx指标
    Pytest自动化测试
  • 原文地址:https://www.cnblogs.com/kirohuji/p/6897248.html
Copyright © 2020-2023  润新知