当客户端发出一个请求首先被DispatcherServlet捕获(若该请求不经过DispatcherServlet,那么直接返回相应资源非SSM)
DispatcherServlet收到请求后自己不进行处理,而是委托给其他的解析器进行处理作为统一访问点,进行全局的流程控制判断是否有相应的Handler方法。
如果没有找到相应的解析器Handler查看是否配置了 <mvc:default-servlethandler/> ,若配置了它会对DispatcherServlet的请求进行处理如果該请求已经作了映射,有相应的请求处理方法那么会接着交给后台对应的处理程序(目标资源),如果没有作映射就交给 WEB 应用服务器默认的 Servlet
然后向下这里调用调用拦截器的 PreHandle (进行预处理,当preHandle方法返回false时从当前拦截器往回执行所有拦截器的afterCompletion方法,再退出拦截器链当preHandle方法全为true时,执行下一个拦截器,直到所有拦截器执行完)方法对ModelAndView进行操作,处理完成后返回ModelAndView 对象(包含模型数据、逻辑视图名)
执行postHandle方法:它是进行处理器拦截用的,它的执行时间是在处理器进行处理之后也就是在Controller的方法调用之后执行,但是它会在DispatcherServlet进行视图的渲染之前執行也就是说在这个方法中可以对ModelAndView进行操作。(这里判断是否存在异常)如果不存在异常继续执行。
View会根据传进来的Model模型数据进行渲染