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
- springMVC源码分析--SimpleControllerHandlerAdapter(三)
- springMVC源码分析--AbstractUrlHandlerMapping(三)
- springMVC源码分析--AbstractUrlHandlerMapping(三)
- SpringMVC源码分析--容器初始化(三)HttpServletBean
- springMVC源码分析--拦截器HandlerExecutionChain(三)
- springMVC源码分析--RequestParamMethodArgumentResolver参数解析器(三)
- springMVC源码分析--ViewNameMethodReturnValueHandler返回值处理器(三)
- springMVC源码分析--HttpMessageConverter写write操作(三)
- springMVC源码分析--页面跳转RedirectView(三)
- SpringMVC源码分析--容器初始化(三)HttpServletBean
- springMVC源码分析--拦截器HandlerExecutionChain(三)
- SpringMVC源码分析(一)
- SpringMVC源码分析(一)
- SpringMVC源码分析(二)
- SpringMVC源码分析(三)之Controller方法参数的工作原理
- springMVC原理(三):详解SpringMVC请求的时候是如何找到正确的Controller[附带源码分析]
- SpringMVC源码(三)Controller控制器
- SpringMVC源码总结(三)mvc:annotation
- 442. Find All Duplicates in an Array
- 客户端读取服务器信息tcp
- shiro-密码比较的设计 CredentialsMatcher -为什么Java中的密码优先使用 char[] 而不是String?
- 【SSLGZ 1408】(树)哈夫曼树(二)
- 结构体类型struct(c++)
- springMVC源码分析--SimpleControllerHandlerAdapter(三)
- SpringMVC整合Mybatis之文件上传与下载
- struts.xml配置文件的内容标签
- Selector
- C语言动态数据结构
- 利用方法计算程序段的运行时间
- exec族,以execl为例
- 科技论文写作 词汇句法积累
- eclispe,创建working set 以及将单个项目放入working set