http://www.cnblogs.com/tengyunhao/p/7658952.htmlhtml
http://www.cnblogs.com/tengyunhao/p/7518481.htmlweb
Spring MVC中的 HandlerMapping 是請求處處理器映射,即請求的URL到Controller的映射,經過URL找到響應的Controlelr控制器。app
做用是根據當前請求的找到對應的Handler,並將Handler與一堆HandlerInterceptor(攔截器)封裝到HandlerExceutionChain對象中。在HandlerMapping接口的內部只有一個方法,以下:測試
HandlerExecutionChain getHandler(HttpServletRequest request)spa
HandlerMapping 是由 DispatcherServlet 調用,DispatcherServlet 會從容器中取出全部HandlerMapping 實例並遍歷,讓 HandlerMapping 實例根據本身實現類的方式去嘗試查找 Handler。3d
三個HandlerMappingxml
HandlerExecutionChain 對象htm
===================================================================對象
三個HandlerMapping:blog
一、RequestMappingHandlerMapping
二、SimpleUrlHandlerMapping
三、BeanNameUrlHandlerMapping
只須要在controller前加上@RequestMapping註解。
web.xml配置
Controller
SimpleUrlHandlerMapping的Controller處理類須要實現Controller接口:
Controller方面的測試代碼跟前面的SimpleUrlHandlerMapping同樣,實現Controller,重寫handlerRequest()方法便可。
handlerAdapter對應的是Controller,有三種最經常使用的HandlerAdapter,分別是:
一、RequestMappingHandlerAdapter
二、HttpRequestHandlerAdapter
三、SimpleControllerHandlerAdapter
RequestMappingHandlerAdapter主要是適配註解類處理器,註解類處理器就是咱們常常使用的@Controller的這類處理器。 HttpRequestHandlerAdapter主要是適配靜態資源處理器,靜態資源處理器就是實現了HttpRequestHandler接口的處理器,這類處理器的做用是處理經過SpringMVC來訪問的靜態資源的請求。 SimpleControllerHandlerAdapter是Controller處理適配器,適配實現了Controller接口或Controller接口子類的處理器。