SimpleServletHandlerAdapter类详解 - HandlerAdapter系列六

SimpleServletHandlerAdapter(简单Servlet处理器适配器),它是spring提供的处理适配器,专门适配类型为javax.servlet.Servlet的处理器,其最终执行的方法是Servlet的service方法。

源码

public class SimpleServletHandlerAdapter implements HandlerAdapter {  
    @Override  
    public boolean supports(Object handler) {  
        // 仅仅支持实现了Servlet的处理器,这个处理器需要在Web应用程序中声明,但是, Servlet的初始化方法和析构方法不会被调用
        return (handler instanceof Servlet);  
    }  
      
    //执行Servlet的service方法  
    @Override  
    public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler)  
            throws Exception {  
        //本质还是执行Servlet的service方法,不需要返回值,返回值在Servlet的服务方法直接写入HTTP响应对象
        ((Servlet) handler).service(request, response);  
        return null;  
    }  
  
    @Override  
    public long getLastModified(HttpServletRequest request, Object handler) {  
        // 不支持最后修改行为  
        return -1;  
    }  
}

SimpleServletHandlerAdapter能够将一个HTTP请求传递给一个Servlet规范中定义的Servlet的实现进行处理。它的应用并不广泛,主要应用在适配到一个已有的Servlet的实现以达到重用的目的。基于简单控制器流程的实现中,有个相似的类ServletWrappingController实现了同样的业务逻辑。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。