首先浏览器发起请求,springDispatcherServlet查看是否有springmvc容器中是否有对应的映射
如果存在那么通过HandlerMapping获取HandlerExcecutionChain对象,在获取handlerAdapter对象,调用拦截器的preHandler方法,调用目标handler的目标方法得到对象ModelAndView在调用拦截器的postHandler方法,判断是否存在异常如果存在异常那么将会有HandlerExceptionResolver组件处理异常,得到新的ModelAndView对象,传给ViewResolver,它将会通过ModelAndView对象得到实际的view;不存在异常那么将会直接给ViewResolver。最后根据view找到对应的视图,再去渲染视图,在调用拦截器的afterCompletion方法。
不存在的话,将会继续查看是否配置了 <mvc:default-servlet-handler/>( <mvc:annotation-driven/>一定要有这个配合,否则requestMapping将会出错),有配置,直接去找到相应的资源(eg:.js),没有配置报错NO Mapping Found XXXX