http://www.cnblogs.com/tengyunhao/p/7658952.html

http://www.cnblogs.com/tengyunhao/p/7518481.html

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

Spring MVC中的 HandlerMapping 是请求到处理器映射,即请求的URL到Controller的映射,通过URL找到响应的Controlelr控制器。

作用是根据当前请求的找到对应的Handler,并将Handler与一堆HandlerInterceptor(拦截器)封装到HandlerExceutionChain对象中。在HandlerMapping接口的内部只有一个方法,如下:

  HandlerExecutionChain getHandler(HttpServletRequest request)

HandlerMapping 是由 DispatcherServlet 调用,DispatcherServlet 会从容器中取出所有HandlerMapping 实例并遍历,让 HandlerMapping 实例根据自己实现类的方式去尝试查找 Handler。

Spring MVC HandlerMapping 随笔 第1张 

Spring MVC HandlerMapping 随笔 第2张

三个HandlerMapping

Spring MVC HandlerMapping 随笔 第3张

HandlerExecutionChain 对象

Spring MVC HandlerMapping 随笔 第4张

 ===================================================================

三个HandlerMapping:

1、RequestMappingHandlerMapping

2、SimpleUrlHandlerMapping

3、BeanNameUrlHandlerMapping

 

RequestMappingHandlerMapping

只需要在controller前加上@RequestMapping注解。

web.xml配置

Spring MVC HandlerMapping 随笔 第5张

Controller

Spring MVC HandlerMapping 随笔 第6张

 

 SimpleUrlHandlerMapping

Spring MVC HandlerMapping 随笔 第7张

SimpleUrlHandlerMapping的Controller处理类需要实现Controller接口:

Spring MVC HandlerMapping 随笔 第8张

BeanNameUrlHandlerMapping

Spring MVC HandlerMapping 随笔 第9张

Controller方面的测试代码跟前面的SimpleUrlHandlerMapping一样,实现Controller,重写handlerRequest()方法即可。

handlerAdapter

handlerAdapter对应的是Controller,有三种最常用的HandlerAdapter,分别是:
1、RequestMappingHandlerAdapter
2、HttpRequestHandlerAdapter
3、SimpleControllerHandlerAdapter

RequestMappingHandlerAdapter主要是适配注解类处理器,注解类处理器就是我们经常使用的@Controller的这类处理器。
HttpRequestHandlerAdapter主要是适配静态资源处理器,静态资源处理器就是实现了HttpRequestHandler接口的处理器,这类处理器的作用是处理通过SpringMVC来访问的静态资源的请求。
SimpleControllerHandlerAdapter是Controller处理适配器,适配实现了Controller接口或Controller接口子类的处理器。



作者:代码potty
链接:https://www.jianshu.com/p/e4f1c9326223
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄