springMVC源码分析--SimpleControllerHandlerAdapter(三)

来源:互联网 发布:上海虹桥电缆网络销售 编辑:程序博客网 时间:2024/04/30 03:49

上一篇博客springMVC源码分析--HandlerAdapter(一)中我们主要介绍了一下HandlerAdapter接口相关的内容,实现类及其在DispatcherServlet中执行的顺序,接下来我们详细介绍一下其实现类SimpleControllerHandlerAdapter,SimpleControllerHandlerAdapter是Controller实现类的适配器类,其本质是执行Controller中的handleRequest方法。

supports方法就是判断handler是否是Servlet

getLastModified直接返回-1

handle方法本质是执行Controller.handleRequest方法。

public class SimpleControllerHandlerAdapter implements HandlerAdapter {@Overridepublic boolean supports(Object handler) {//判断是否是Controller类return (handler instanceof Controller);}//执行Controller的handleRequest方法@Overridepublic ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {//本质是执行Controller的handleRequest方法return ((Controller) handler).handleRequest(request, response);}@Overridepublic long getLastModified(HttpServletRequest request, Object handler) {if (handler instanceof LastModified) {return ((LastModified) handler).getLastModified(request);}return -1L;}}

其实Controller接口的定义也很简单,仅仅定义了一个handleRequest方法

public interface Controller {ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception;}
SimpleControllerHandlerAdapter的实现也是很简单的,就是适配执行Controller的handleRequest方法。



1 0