springMvc执行流程

web.xml

<servlet>
    <servlet-name>chapter2servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
    
    <load-on-startup>1load-on-startup>
servlet>
<servlet-mapping>
    <servlet-name>chapter2servlet-name>
    <url-pattern>/url-pattern>
servlet-mapping>

springMvc执行流程_第1张图片
url解析:
这里写图片描述
运行流程:
springMvc执行流程_第2张图片
运行步骤:
- 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 返回响应给用户,到此一个流程结束。

出自跟开涛学springmvc

你可能感兴趣的:(springmvc)