SpringMVC框架学习(一)——架构思想及组件

SpringMVC框架简介

一、基本概述

1、SpringMVC是Spring 为表现层提供的基于 MVC 设计理念的优秀的 Web 框架,是目前最主流的
MVC 框架之一;
2、SpringMVC是Spring 框架的一个模块,SpringMVC和Spring 无需通过中间整合层进行整合。
3、Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实任何接口。
4、支持 REST 风格的 URL 请求。

MVC设计模式简介:

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计模式:
(1)Model层:Model指模型部分,一般在应用中Model层包括业务处理层和数据访问层。数据访问层主要是对数据库的一些操作的封装。业务处理层应用JavaBean构建, JavaBean主要是用作将从View层获取的数据和数据库的数据进行桥接。除却JavaBean以外,若想构建分布式应用系统,可以应用EJB组件进行业务逻辑层的构建。

(2)Controller层:Controller指控制部分,一般是对View层提交的请求为其设置对应的Servlet进行特定功能的处理,这里的进行特定功能的处理一般是编写在Model中的业务处理层中的。Controller一般只是在Web应用中充当一个中介者的作用。

(3)View层:View指视图部分,这一部分的内容是展示给用户实际进行交互的,通常使用JSP和HTML进行构建。

二、SpringMVC框架的架构思想

在这里插入图片描述

1、组件说明:

(1)、前端控制器:DispatcherServlet(不需要程序员开发)
作用:接收请求,响应结果,相当于转发器,中央处理器。有了DispatcherServlet减少了其它组件之间的耦合度。DispatcherServlet是SpringMVC的入口。

(2)、处理器映射器:HandlerMapping(不需要程序员开发)
作用:根据请求的url查找Handler即处理器。常见的方式有配置文件方式、实现接口方式、注解方式。我们常用的是注解方式。

(3)、处理器适配器:HandlerAdapter
作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler。后端的控制器 请求的具体处理程序(开发的业务)

(4)、处理器:Handler(需要程序员开发,就是指我们的controller)
注意:由于Handler涉及到具体的用户业务需求,一般要求程序员根据业务需求去开发Handler。编写Handler时按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler。

(5)、视图解析器:View resolver(不需要程序员开发)
作用:进行视图解析,根据逻辑视图名解析成真正的视图(view)。ViewResolver 负责将处理结果生成 View 视图,ViewResolver 首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染将处理结果通过页面展示给用户。 SpringMVC 框架提供了很多的 View 视图类型,包括:jstlView、freemarkerView、pdfView 等。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。

(6)、视图:View(需要程序员开发jsp)
View是一个接口,实现类支持不同的View类型(jsp、freemarker、pdf…),

所有的组件中:处理器映射器、 处理器适配器、视图解析器 被称为springMVC的三大组件。
用户只需要开发= 页面 + 处理器。

2、Springmvc架构原理解析:

1、用户发起请求到前端控制器(DispatcherServlet);
2、前端控制器请求HandlerMapping查找 Handler,可以根据xml配置、注解进行查找;
3、处理器映射器HandlerMapping向前端控制器返回Handler;
4、前端控制器调用处理器适配器去执行Handler;
5、处理器适配器去执行Handler;
6、Handler执行完成给适配器返回ModelAndView;
7、处理器适配器向前端控制器返回ModelAndView;
ModelAndView是springmvc框架的一个底层对象,包括 Model和view;
8、前端控制器请求视图解析器去进行视图解析,根据逻辑视图名解析成真正的视图(jsp);
9、视图解析器向前端控制器返回View;
10、前端控制器进行视图渲染,视图渲染将模型数据(在ModelAndView对象中)填充到request域;
11、前端控制器向用户响应结果;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值