springmvc运行流程

图示:

        首先,发送一个请求,查看请求路径是否与springDispatcherServlet的url-pattern相对应,在springmvc中是否存在对应的映射@RequestMapping(),如果不存在话,

       是否配置了<mvc:default-servlet-handler/>,如果依旧没有 <mvc:default-servlet-handler/>的话,则会出现404页面,并且在控制台输出No mapping found for HTTP request with URI [/xx/xx] in DispatcherServlet。

    配置了<mvc:default-servlet-handler/>,去访问目标资源,如果没有目标资源的话,依旧是404界面,但是控制台不会输出 No mapping found...

  在springmvc中存在对应映射的情况下,由 HandlerMapping 获取 HandlerExecutionChain 对象,然后获取HandlerAdapter(适配器),调用拦截器的PreHandle,调用目标Handler 的目标方法得到 ModelAndView 对象,调用拦截器的 postHandle方法,查看是否存在异常

  如果有异常的话,会由异常解析器解析这个异常,得到一个新的ModelAndView 对象

没有异常的话,依旧是那个ModelAndView 对象,然后由 ViewResolver 组件根据 ModelAndView 对象得到实际的 View,渲染视图,最后调用拦截器的 afterCompletion方法

猜你喜欢

转载自blog.csdn.net/qq_37638061/article/details/81609830
今日推荐