springMVC源码分析--SimpleServletHandlerAdapter

本文介绍Spring MVC中的SimpleServletHandlerAdapter类,该类作为Servlet的适配器,主要负责执行Servlet的service方法。文章详细解析了SimpleServletHandlerAdapter的实现原理,包括如何判断handler是否为Servlet以及执行Servlet.service的具体过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接下来我们详细介绍一下其实现类SimpleServletHandlerAdapter,SimpleServletHandlerAdapter其实是一个Servlet的适配器,其最终执行的方法是Servlet的service方法,源码如下,我们可以看到其真正起作用的地方是((Servlet) handler).service(request, response),其实也就是调用Servlet的service,其实本质还是比较简单的。

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

getLastModified直接返回-1

handle方法本质是执行Servlet.service方法。

[java]  view plain  copy
 print ?
  1. public class SimpleServletHandlerAdapter implements HandlerAdapter {  
  2.   
  3.     @Override  
  4.     public boolean supports(Object handler) {  
  5.         return (handler instanceof Servlet);  
  6.     }  
  7.       
  8.     //执行Servlet的service方法  
  9.     @Override  
  10.     public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler)  
  11.             throws Exception {  
  12.         //本质还是执行Servlet的service方法  
  13.         ((Servlet) handler).service(request, response);  
  14.         return null;  
  15.     }  
  16.   
  17.     @Override  
  18.     public long getLastModified(HttpServletRequest request, Object handler) {  
  19.         return -1;  
  20.     }  
  21.   
  22. }  

这样springMVC中就提供了执行Servlet的适配器,如果可以的话我们是否也可以自己写一个适配器类然后注入到springMVC 的容器中。

这样就可以在servlet类中注入spring容器中的bean了,如下所示:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值