运行步骤:
1、 首先用户发送请求 http://localhost:9080/springmvc-chapter2/hello——>web 容器,web 容器根据“/hello”路径映射到DispatcherServlet(url-pattern 为/)进行处理;
2、 DispatcherServlet——>BeanNameUrlHandlerMapping 进行请求到处理的映射,BeanNameUrlHandlerMapping 将“/hello”路径直接映射到名字为“/hello”的 Bean 进行处理,即 HelloWorldController,BeanNameUrlHandlerMapping将其包装为HandlerExecutionChain(只包括 HelloWorldController 处理器,没有拦截器);
3、 DispatcherServlet——>SimpleControllerHandlerAdapter,SimpleControllerHandlerAdapter将 HandlerExecutionChain中的处理器(HelloWorldController)适配为SimpleControllerHandlerAdapter;
4、 SimpleControllerHandlerAdapter — — >HelloWorldController 处 理 器 功 能 处 理 方 法 的 调 用 ,SimpleControllerHandlerAdapter 将会调用处理器的 handleRequest 方法进行功能处理,该处理方法返回一个 ModelAndView 给 DispatcherServlet;
5、 hello(ModelAndView 的逻辑视图名)——>InternalResourceViewResolver,InternalResourceViewResolver 使用JstlView,具体视图页面在/WEB-INF/jsp/hello.jsp;
6、 JstlView(/WEB-INF/jsp/hello.jsp)——>渲染,将在处理器传入的模型数据(message=HelloWorld!)在视图中展示出来;
7、 返回控制权给 DispatcherServlet,由 DispatcherServlet 返回响应给用户,到此一个流程结束。