专栏首页沁溪源SpringMVC系列一

SpringMVC系列一

首先介绍一下SpringMVC的执行流程:如图

1.用户在客户端发送请求,经过前端控制器DispatcherServlet,请求处理器处理,返回ModelAndView返回结果到前端控制器;

2.前端控制器在将处理的结果返回到JSP页面,经过渲染视图以后,响应客户端,最终显示在用户;

架构流程

1、用户发送请求至前端控制器DispatcherServlet

2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3、处理器映射器根据请求url找到具体的处理器,生成处理器对象(handler)及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

5、执行处理器(Controller,也叫后端控制器)。

6、Controller执行完成返回ModelAndView

7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet

8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器

9、ViewReslover解析后返回具体View

10、 DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。

11、 DispatcherServlet响应用户

组件说明

以下组件通常使用框架提供实现:

DispatcherServlet:前端控制器

用户请求到达前端控制器,它就相当于mvc模式中的c,dispatcherServlet是整个流程控制的中心,由它调用其它组件处理用户的请求,dispatcherServlet的存在降低了组件之间的耦合性。

HandlerMapping:处理器映射器

HandlerMapping负责根据用户请求url找到Handler即处理器,springmvc提供了不同的映射器实现不同的映射方式,例如:配置文件方式,实现接口方式,注解方式等。

Handler:处理器

Handler 是继DispatcherServlet前端控制器的后端控制器,在DispatcherServlet的控制下Handler对具体的用户请求进行处理。

由于Handler涉及到具体的用户业务请求,所以一般情况需要程序员根据业务需求开发Handler。

HandlAdapter:处理器适配器

通过HandlerAdapter对处理器进行执行,这是适配器模式的应用,通过扩展适配器可以对更多类型的处理器进行执行。

ViewResolver:视图解析器

View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。

View:视图

springmvc框架提供了很多的View视图类型的支持,包括:jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp。

一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

在springmvc的各个组件中,处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件。

需要用户开发的组件有handler、view

配置前端控制器:前端控制器SpringMVC的核心;在web.xml中进行配置

<!-- 配置前端控制器 -->
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<!-- 配置上下文 -->
  	<!-- 如果没有配置上下文,默认会选择/WEB-INF/[servlet-name]-servlet.xml 
  	异常:Caused by: java.io.FileNotFoundException: 
  	Could not open ServletContext resource [/WEB-INF/springmvc-servlet.xml]
  	-->
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:springmvc.xml</param-value>
  	</init-param>
  </servlet>
  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>*.action</url-pattern>
  </servlet-mapping>

默认会加载视图解析器,处理器映射器、处理器映射器等在DispatcherServlet.properties

u ViewResolver:视图解析器

View Resolver负责将处理结果生成View视图,View Resolver首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成View视图对象,最后对View进行渲染将处理结果通过页面展示给用户。

u View:视图

springmvc框架提供了很多的View视图类型的支持,包括:jstlView、freemarkerView、pdfView等。我们最常用的视图就是jsp。

一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

说明:在springmvc的各个组件中,处理器映射器、处理器适配器、视图解析器称为springmvc的三大组件。 需要用户开发的组件有handler、view

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 优雅地配置Maven仓库

    本篇经验小编将和大家介绍如何在Eclipse中配置maven和创建maven项目,希望对大家的工作和学习有所帮助!

    沁溪源
  • Main.obj : error LNK2019: 无法解析的外部符号 _Direct3DCreate9@4,该符号在函数 "long __cdecl InitD3D(struct HWND__ *)

    错误问题: Main.obj : error LNK2019: 无法解析的外部符号 _Direct3DCreate9@4,该符号在函数 "long __cdec...

    沁溪源
  • 图解centos安装详细过程

    选择CD/DVD—>选择使用ISO映像文件,最后选择浏览找到下载好的镜像文件。启动时连接一定要勾选上;

    沁溪源
  • utuntu 18.04.1安装maven记录

    以下内容全部是修改apache-maven-3.6.0/conf/settings.xml文件

    DH镔
  • 用于 SELECT 和 WHERE 子句的函数

    用户1112962
  • XilinxFloating-Point IP

    13)Conversion from floating-point to fixed-point—浮点转定点

    FPGA开源工作室
  • go float 相等比较 原

    因为浮点数不是一种精确的表达方式,所以像整型那样直接用==来判断两个浮点数是否相等是不可行的,这可能会导致不稳定的结果。

    solate
  • PageAdmin Cms建站系统教程:站点的添加和管理

    PageAdmin Cms建站系统是一款支持多站点,多域名,多语种的建站系统,被众多的网站建设公司和个人站长用于制作网站,上一篇小编介绍了PageAdmin建站...

    用户4831957
  • 面经 | 图森未来-感知算法工程师(20校招)

    首先box的数量大小是不固定的,不好直接融合;其次,类别概率图可以一次把整张图的关于小物体的信息都表示出来

    AI算法与图像处理
  • php中判断两个时间的间隔天数

    //判断两个时间的间隔是否大于5 //去掉小于天数的时间 //var ts0 = time_start.split(" "); //var t...

    闵开慧

扫码关注云+社区

领取腾讯云代金券