springmvc执行过程详解

一、springmvc中间件介绍

1.1 DispatcherServlet

  • DispatcherServlet表示前置控制器。

  • 主要功能:是整个SpringMVC的控制中心

  • 在web.xml中有对DispatcherServlet的配置,首先所有的请求都会被拦截DispatcherServlet控制器所拦截

<servlet>
		<servlet-name>springServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>/WEB-INF/spring-cfg/spring-controller.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
		<servlet-name>springServlet</servlet-name>
		<url-pattern>/</url-pattern>
</servlet-mapping>

1.2HandlerMapping

  • HandlerMapping主要表示处理器映射。

  • 主要功能:用来解析请求url,解析出控制器,从而映射控制器

  • 例如

    • 我们假设请求的url为:
      
      http://localhost:8080/SpringMVC/input-product
      
      如上url拆分成三部分:
      
      http://localhost:8080 服务器域名
      SpringMVC部署在服务器(http://localhost:8080)上的web站点
      input-product表示控制器
      通过分析,如上url表示为:请求位于服务器localhost:8080上的SpringMVC站点的input-product控制器。
      

1.3HandlerAdapter

  • HandlerAdapter主要表示处理器适配。
  • 主要功能:其按照特定的规则去执行Handler,调度Controller来处理业务逻辑等

1.4ViewResolver

  • ViewResolver主要表示视图解析器。
  • 主要功能:解析DispatcherServlet传递的逻辑视图名,并将解析结果传回给DispatcherServlet

二、springMvc执行流程(文字叙述)

  • 第一步:用户发出请求,DispatcherServlet接收请求并拦截请求

  • 第二步:DispatcherServlet调用HandlerMapping,HandlerMapping根据请求url查找Handler。

    • HandlerExecution表示具体的Handler,其主要作用是根据url查找控制器,如上url被查找控制器为:input-product。
  • 第三步:HandlerExecution将解析后的信息(handler)传递给DispatcherServlet。(另外一种说法:处理器映射器HandlerMapping向前端控制器返回Handler)

  • 第四步:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行Handler

  • 第五步:处理器适配器(HandlerAdapter)按照特定的规则去执行Handler。

  • 第六步:Handler找到具体的Controller去处理,返回ModelAndView给处理器适配器(HandlerAdapter)

  • 第七步:处理器适配器(HandlerAdapter)向前端控制器(DispatcherServlet)返回ModelAndView

  • 第八步:前端控制器(DispatcherServlet)调用视图解析器(ViewResolver)来解析HandlerAdapter传递的逻辑视图名

  • 第九步:视图解析器(ViewResolver)根据逻辑视图名解析成真正的视图(jsp)并向前端控制器(DispatcherServlet)返回View

  • 第十步:前端控制器(DispatcherServlet)进行视图渲染。视图渲染将模型数据(在ModelAndView对象中)填充到request域

  • 第十一步:前端控制器(DispatcherServlet)向用户响应结果

三、springMvc执行流程(图片解析)

在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值