【SpringMVC学习02】SpringMVC的工作流程

一、工作流程

通过第一节入门案例的学习,我们对SpringMVC的使用已经有了一个初步的了解。对于上篇博客中涉及到的各种组件,在文字中或许有些难理解,那我们就用图片来展示SpringMVC程序的执行情况。

  • SpringMVC的工作原理:
    在这里插入图片描述
  • SpringMVC程序的完整执行流程如下:
  1. )用户通过浏览器向服务器发送请求,请求会被 Spring MVC 的前端控制器 DispatcherServlet 所拦截。
  2. DispatcherServlet 拦截到请求后,会调用 HandlerMapping 处理器映射器。
  3. )处理器映射器根据请求 URL 找到具体的处理器,生成处理器对象及处理器拦截器(如 果有则生成)一并返回给 DispatcherServlet。
  4. DispatcherServlet 会通过返回信息选择合适的 HandlerAdapter (处理器适配器)。
  5. HandlerAdapter 会调用并执行 Handler (处理器),这里的处理器指的就是程序中编写 的 Controller 类,也被称之为后端控制器。
  6. Controller 执行完成后,会返回一个 ModelAndView 对象,该对象中会包含视图名或包含模型和视图名。
  7. HandlerAdapter 将 ModelAndView 对象返回给 DispatcherServlet。
  8. DispatcherServlet 会根据 ModelAndView 对象选择一个合适的 ViewReslover (视图解 析器)。
  9. ViewReslover 解析后,会向 DispatcherServlet 中返回具体的 View (视图)。
  10. DispatcherServlet 对 View 进行渲染(即将模型数据填充至视图中)。
  11. 视图渲染结果会返回给客户端浏览器显示。

注意: 在上述执行过程中, DispatcherServlet、 HandlerMapping、 HandlerAdapter 和 ViewResolver 对象的工作是在框架内部执行的,开发人员并不需要关心这些对象内部的实现过程,只需要配置 前端控制器( DispatcherServlet ),完成 Controller 中的业务处理,并在视图中 (View) 中展示 相应信息即可。

二、DispatcherServlet讲解

DispatcherServlet 的全名是 org.spri ngframework. web .servlet. DispatcherServlet ,它在程序中,充当着前端控制器的角色。 在使用时,只需将其配置在项目的 web.xml 文件中,其配置代码如下:

<servlet> 
	<!--配置前端过滤--> 
	<serv1et-name>springmvc</servlet-name> 
	<serv1et-c1ass> org.springframework.web.servlet.DispatcherServlet </servlet-class> 
	<!--初始化时加载配置文件-->
	<init-param> 
		<param-name>ContextConfigLocation</param-name> 
		<param-value>classpath:springmvc-config.xml</param-value> 
	</init-param> 
	<!--表示容榕在启动时立即加载 Servlet --> 
	<load-on-startup>l</load-on-startup> 
</servlet> 
<servlet-mapping> 
	<servlet-name>springmvc</servlet-name> 
	<url-pattern>/</url-pattern> 
</servlet-mapping> 

在上述代码中, <load-on-startup>元素和<init-param>元素都是可选的。 如果<load-onstartup>元素的值为 1 ,则在应用程序启动时会立即加载该 Servlet。如果<load-on-startup>元素不存在,则应用程序会在第一个 Servlet 请求时加载该 Servlet。 如果<init-param>元素存在并且通过其子元素配置了 Spring MVC 配置文件的路径,则应用程序在启动时会加载配置路径下的配置文件。如果没有通过<init-param>元素配置,则应用程序会默认到 WEB-INF 目录下寻找如 下方式命名的配置文件。

servletName-servlet.xml 

其中, servletName 指的是部署在 web.xml 中的 DispatcherServlet 的名称,在上面 web.xml 中的配置代码中即为 springmvc ,而-servlet.xml 是配置文件名的固定写法,所以应用程序会在 WEB-INF 下寻找 springmvc-servlet.xml。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值