美文网首页
SpringMVC - handlerMapping

SpringMVC - handlerMapping

作者: 李天火 | 来源:发表于2016-02-21 22:13 被阅读197次
    SpringMVC.JPG
    1、功能

    handlerMapping是一个接口,也就是可扩展。

    handlerMapping的作用就是根据不同的请求去匹配对应的Handler,也就是根据请求匹配一个请求处理器
    这个过程需要两个步骤:

    1. 第一步,需要将Handler注册到HandlerMapping中;
    2. 分析请求根据规则从已注册的Handler中匹配到对应的Handler,即Controller。默认情况下,SpringMvc为我们提供了几个默认的HandlerMapping的实现,通过优先级的次序决定执行的顺序。

    2、运行流程
     在基于Spring MVC的Web应用程序中,我们可以为DispatcherServlet提供多个HandlerMapping供其使用。

    • DispatcherServlet在选用HandlerMapping的过程中,将根据我们所指定的一系列HandlerMapping的优先级进行排序,然后优先使用优先级在前的HandlerMapping。
    • 如果当前的HandlerMapping能够返回可用的Handler,DispatcherServlet则使用当前返回的Handler进行Web请求的处理,而不再继续询问其他的HandlerMapping。
    • 否则,DispatcherServlet将继续按照各个HandlerMapping的优先级进行询问,直到获取一个可用的Handler为止。

    3、源码

    public interface HandlerMapping {
     
        String PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE = HandlerMapping.class.getName() + ".pathWithinHandlerMapping";
     
        String BEST_MATCHING_PATTERN_ATTRIBUTE = HandlerMapping.class.getName() + ".bestMatchingPattern";
     
        String INTROSPECT_TYPE_LEVEL_MAPPING = HandlerMapping.class.getName() + ".introspectTypeLevelMapping";
     
        String URI_TEMPLATE_VARIABLES_ATTRIBUTE = HandlerMapping.class.getName() + ".uriTemplateVariables";
     
        String PRODUCIBLE_MEDIA_TYPES_ATTRIBUTE = HandlerMapping.class.getName() + ".producibleMediaTypes";
     
        public abstract HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception;
     
    }
    

    相关文章

      网友评论

          本文标题:SpringMVC - handlerMapping

          本文链接:https://www.haomeiwen.com/subject/ynxbkttx.html