SpringMVC源码分析
2020-06-14 18:30:04 0 举报
SpringMVC源码分析
作者其他创作
大纲/内容
abstract FrameworkServlet(模板类)
属性
说明: 1.返回一个请求的处理handle和对应的handler拦截器。handler拦截器是通过mapping拦截器过滤后获取的 2.总之handlerExecutionChain类似一个对handler属性的管理角色。
1.FrameworkServlet初始化了WebApplicationContext,2.DispatcherServlet初始化了自身的9个组件
getHandler(processedRequest)说明:确定当前请求的处理程序和相关的web拦截器
方法
HandlerAdapter ha = getHandlerAdapter(mappedHandler.getHandler());说明:根据handlerMethod获取支持处理的适配
HandlerMapping接口介绍HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception;说明:返回此请求的处理程序和所有拦截器
protected HandlerAdapter getHandlerAdapter(Object handler) throws ServletException
checkRequest(request)说明:检查请求
NO
DispatcherServlet 的 checkMultipart() 方法会调用 MultipartResolver 的 isMultipart() 方法判断请求中是否包含文件。如果请求数据中包含文件,则调用 MultipartResolver 的 resolveMultipart() 方法对请求的数据进行解析,然后将文件数据解析成 MultipartFile 并封装在 MultipartHttpServletRequest (继承了 HttpServletRequest) 对象中,最后传递给 Controller
Object handler = getHandlerInternal(request)说明:根据请求获取处理器
模板方法getHandler(HttpServletRequest request)
主要进行的逻辑是request.setAttribute。即往请求对象里面设置一些属性
DispatcherServlet(继承FrameworkServlet)
Filter过滤器主体逻辑(ApplicationFilterChain)
protected HandlerExecutionChain getHandler(HttpServletRequest request) throws Exception
返回json的转换器接口
方法重写
抽象模板AbstractHandlerMapping说明
servelet的创建和初始化
同步会话?
URL
processedRequest = checkMultipart(request);说明:装饰者模式
public final class MappedInterceptor implements HandlerInterceptor
以RequestMappingHandlerAdapter为例来说明这个逻辑
抽象方法
0 条评论
回复 删除
下一页