SpringMVC学习笔记11——运行流程

1. SpringMVC运行流程

SpringMVC学习笔记11——运行流程

执行流程

  1. 用户发起请求some.do

  2. DispatcherServlet接收请求some.do,把请求转交给处理器映射器
    处理器映射器:springmvc框架中的一种对象,框架把实现了HandlerMapping接口的类都叫做映射器(多个)
    映射器作用:根据请求,从springmvc容器对象中获取处理器对象(MyController mc=ctx.getBean("some.do"))框架把找到的处理器对象放到一个叫做处理器执行链(HandlerExecutionChain)的类保存

    HandlerExecutionChain:类中保存着 1.处理器对象(MyController);2.项目中所有的拦截器List<HandlerInterceptor> interceptorList

    *调度器调用方法:HandlerExecutionChain mappedHandler = this.getHandler(processedRequest);

  3. DispatcherServletHandlerExecutionChain中的处理器对象交给处理器适配器对象(多个)
    处理器适配器: 是springmvc中的对象,需要实现HandlerAdaper接口
    处理器适配器作用: 执行处理器方法(调用MyController.doSome(),得到返回值ModelAndView

    *调度器调用方法:HandlerAdapter ha = this.getHandlerAdapter(mappedHandler.getHandler());
    *调度器执行处理器方法:mv = ha.handle(processedRequest, response, mappedHandler.getHandler());

  4. DispatcherServlet把获取到的ModelAndView 交给视图解析器对象
    视图解析器对象:springmvc中的对象,需要实现ViewResoler(可以有多个)
    视图解析器对象作用:使用前后缀组成视图完整路径,并创建View对象;View是一个接口,用于表示视图,;在框架中,jsp,html不是用string表示,而是使用View和其实现类来表示视图
    InternalResourceView:视图类,表示jsp文件,视图解析器会创建InternalResourceView类对象
    这个对象有一个属性url=/WEB-INF/view/show.jsp

  5. DisparcherServlet获取到创建的View对象,调用View类自己的方法,把Model数据放入request作用域,执行对象视图的forward,请求结束