轉載 https://blog.csdn.net/qq924862077/article/details/53843251
上一篇博客springMVC源碼分析--HandlerAdapter(一)中我們主要介紹了一下HandlerAdapter接口相關的內容,實現類及其在DispatcherServlet中執行的順序,接下來我們詳細介紹一下其實現類HttpRequestHandlerAdapter,同前幾篇博客一樣HttpRequestHandlerAdapter的本質還是調用HttpRequestHandler的HttpRequestHandler方法。
supports方法就是判斷handler是否是Servlet
getLastModified直接值
handle方法本質是執行HttpRequestHandler.handleRequest方法。
public class SimpleServletHandlerAdapter implements HandlerAdapter {
@Override
public boolean supports(Object handler) {
return (handler instanceof Servlet);
}
//執行Servlet的service方法
@Override
public ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
//本質還是執行Servlet的service方法
((Servlet) handler).service(request, response);
return null;
}
@Override
public long getLastModified(HttpServletRequest request, Object handler) {
return -1;
}
}
這樣springMVC中就提供了執行Servlet的適配器,如果可以的話我們是否也可以自己寫一個適配器類然後注入到springMVC 的容器中。