1、request到dispaterServlet
-> doservice( request,response){
1、保存请求快照
2、共享上下文信息,本地解析,主题解析等对象给 handler和view对象
}
-->doDispatch( request,reponse){
1、判断request是否是文件上传请求,是则转换成MultipartRequest,
2、gethandler(request)-- HandlerExecutionChain <--HandlerMapping.getHandler(request)
3、获取getHandlerApator(handler) HandlerAdapter<-- HandlerAdapter.support(handler) ,返回支持当前handler的 handleradapter
4、判断是否是get或者head请求。根据lasdModified(request)判断请求是否改变,没有发生改变则不再继续请求,而是告诉浏览器 继续使用上次的缓存结果。
5、handler.applyPreHandle(),执行前置拦截器中的方法。
6、handlerAdaptar.hand()--handlerInternal(request,response,handler)--设置session信息--同步或异步执行invokeHandleMethod(request, response, handlerMethod)--返回modelandview对象。
7、当modelandview不等空且viewname为空时根据request设置默认的viewname
8、handler.applyPosthandle() ,执行后置拦截器
-> doservice( request,response){
1、保存请求快照
2、共享上下文信息,本地解析,主题解析等对象给 handler和view对象
}
-->doDispatch( request,reponse){
1、判断request是否是文件上传请求,是则转换成MultipartRequest,
2、gethandler(request)-- HandlerExecutionChain <--HandlerMapping.getHandler(request)
3、获取getHandlerApator(handler) HandlerAdapter<-- HandlerAdapter.support(handler) ,返回支持当前handler的 handleradapter
4、判断是否是get或者head请求。根据lasdModified(request)判断请求是否改变,没有发生改变则不再继续请求,而是告诉浏览器 继续使用上次的缓存结果。
5、handler.applyPreHandle(),执行前置拦截器中的方法。
6、handlerAdaptar.hand()--handlerInternal(request,response,handler)--设置session信息--同步或异步执行invokeHandleMethod(request, response, handlerMethod)--返回modelandview对象。
7、当modelandview不等空且viewname为空时根据request设置默认的viewname
8、handler.applyPosthandle() ,执行后置拦截器