Spring MVC HandlerMapping

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

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

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

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

  HandlerExecutionChain getHandler(HttpServletRequest request)

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

 

三个HandlerMapping

HandlerExecutionChain 对象

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

三个HandlerMapping:

1、RequestMappingHandlerMapping

2、SimpleUrlHandlerMapping

3、BeanNameUrlHandlerMapping

 

RequestMappingHandlerMapping

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

web.xml配置

Controller

 

 SimpleUrlHandlerMapping

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

BeanNameUrlHandlerMapping

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
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
posted @ 2019-05-13 23:35  那天ws  阅读(572)  评论(0编辑  收藏  举报