springmvc 运行流程
一、流程图解
二、流程描述
页面请求 --》判断是不是由dispachServlet处理-》判断springmvc中是否存在对应的映射--》如果不存在--》看是否配置了默认处理器--》如果配置了--》去寻找对应的资源
如果没有配置默认的处理器--》返回no mapping found
如果springmvc存在对应的映射--》由HandlerMapping获取HandlerExcutionChain对象(HandlerExcutionChain中包含了拦截器和映射的处理器即映射对应的方法)--》
获取HandlerAdapter(用来进行提交数据的校验、数据转换、数据绑定初始化) --》 执行拦截器的preHandler方法 --》执行目标方法返回ModelAndView --》执行拦截器的postHandler方法--》看看是否存在异常--》如果有异常--》由HandlerExceptionResolver组建处理异常--》得到新的ModelAndView
如果没有异常--》有ViewResolver组建得到相应的view--》渲染视图--》调用拦截器的aferCompletion方法
三、解释
HandlerMapping:由请求到处理器的映射
HandlerExecutionChain:包含了所有处理器方法和拦截器
HandlerAdapter:表单数据校验、数据格式化、数据类型转换
邮箱:wangh_2@sina.com