美文网首页
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