文章目录
4.1. BeanNameUrlHandlerMapping
4.3. RequestMappingHandlerMapping
@Controller
和@RequestMapping
注解,但是还有其他的方式定义一个controller/
开头@Component(value = "/user/test.do")
public class UserController implements Controller {
@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
System.out.println("userController run.....");
return null;
}
}
@Component(value = "/prod/test.do")
public class ProductController implements HttpRequestHandler {
@Override
public void handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException {
System.out.println("prodController run .....");
}
}
DelegatingWebMvcConfiguration
,其中创建了MVC默认的一些组件,比如viewControllerHandlerMapping
、RequestMappingHandlerMapping
、BeanNameUrlHandlerMapping
、RequestMappingHandlerAdapter
等等。protected void doDispatch(HttpServletRequest request, HttpServletResponse response)
:执行分发的流程protected void render(ModelAndView mv, HttpServletRequest request, HttpServletResponse response)
:渲染视图Controller
和HttpRequestHandler
接口的Handler的映射关系View-controller
、ResourceHttpRequestHandler
的映射关系@RequestMapping
注解的boolean supports(Object handler);
:判断当前的HandlerAdapter是否支持这个HandlerModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception;
:执行Handler的方法long getLastModified(HttpServletRequest request, Object handler);
:获取请求都中的LastModified
RequestMappingHandlerAdapter
:匹配HandlerMethodHttpRequestHandlerAdapter
:匹配实现了HttpRequestHandler
接口的HandlerSimpleControllerHandlerAdapter
:匹配实现了Controller接口的Handler