1、springmvc请求处理流程
<mvc:annotation-driven> 会默认启用RequestMappingHandlerMapping和RequestMappingHandlerAdapter
2、HandlerMapping用法及源码解析
处理器映射器, map<url,处理器>
是一个接口,只有一个getHandler(HttpServletRequest var1)一个方法
映射器有四种:
三种处理器:
RequestMappingHandlerMapping :处理注解,默认配置,@Controller,@RequestMapping
BeanNameUrlHandlerMapping :/beanName 通过beanName定义url
SimpleUrlHandlerMapping: urlMap的key定义url
适配器和处理器类型对应
RequestMappingHandlerAdapter:处理器
SimpleServletHandlerAdapter:处理servlet
HttpRequestHandlerAdapter:HttpRequestHander
SimpleControllerHandlerAdapter:
3、HandlerAdapters用法及源码解析
适配器 map<处理器,适配器>
是一个接口,有supports(Object) ,handler和getLastModified三个方法
servlet 在web.xml中配置,需要tomcat加载,如果再servlet上增加@Component,那就是一个普通的处理器
javaWeb三大组件:Filter,servlet,servletListe
拦截器和过滤器的区别:
过滤器先执行,再执行业务逻辑
过滤器是jdk的,拦截器是spring的
过滤器:Filter ,拦截的是DispatcherServlet
拦截器:web框架层面,springmvc ,可以控制到方法
拦截前:
拦截中:
拦截后:
<mvc:intercepter>定义的拦截器放置到
拦截器前--->处理器----->业务逻辑处理完后,视图返回前执行拦截中----->拦截后