SpringMVC 理论
应用系统三层架构:
C/S:客户端/服务器
B/S:浏览器/服务器
标准分层:
表现层:WEB 层,接受结果,响应结果,分发请求;通常客户端使用 http 协议请求 web 层,web 层需要接受 http 请求,完成 http 响应。
表现层设计一般采用MVC 模型(MVC模型和其他层没关系)
业务层:Service 层,负责业务逻辑处理,web 层依赖业务层,业务层不依赖 web 层;
业务层可能会依赖持久层,如果要对数据持久话需要保持事务一致性(事务应该发给到业务层控制)。
持久层:dao 层,负责数据持久化,包括数据库和数据访问层;
数据库是对数据持久化的载体,而数据访问层则是业务层和持久层的交互接口,业务层需要通过持久层将数据持久化到数据库中。
通常来说,持久层就是与数据库的交互,对数据库进行 CRUD 操作。
MVC 设计模式
MVC 是 模型(Model)- 视图(View)- 控制器(Controller)的缩写,是用于编写设计 web 应用程序表现层的模式。
model(模型):模型包含业务模型和数据模型,数据模型用于封装数据,业务模型用于处理业务。
View (视图):通常指 JSP 或者 html
Controller(控制器):处理用户交互,也就是处理程序逻辑。
SpringMVC 是什么?
SpringMVC 是一种基于 MVC 设计模型的请求驱动类型的轻量级 WEB 框架。属于 SpringFrameWork 的后续产品,Spring 框架提供了构建 WEB 应用程序的全功能 MVC 模块。
SpringMVC 提供了对 RESTful 编程风格的请求
SpringMVC 三大组件:
HandlerMapping : 处理器映射器
负责根据用户的请求找到 Handler 即处理,SPringMvc 提供了不同的映射器实现不同的映射方式,例如 配置文件方式,实现接口方式,注解方式等
HandlerAdapter : 处理器适配器
通过 HandlerAdapter 对处理器 进行执行,这是适配器模式的引用,通过扩展适配器可以对更多类型的处理器进行执行。
ViewResolver : 视图解析器
负责将处理结果生成 View 视图,View Resolver 首先根据逻辑视图名解析成物理视图名即具体的页面地址,再生成 View 视图对象,最后对 View 进行渲染处理结果通过页面展示给用户。

SpringMVC 理论的更多相关文章
- SpringMVC 理论与有用技术(一) 简单、有用、易懂的几个实例
SpringMVC先来看一下百度百科中的定义; Spring MVC属于SpringFrameWork的兴许产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应 ...
- SpringMVC 理论与有用技术(二)文件上传
文件上传相信大家都做过,差点儿全部的项目都有上传文件的功能,尤其是BS架构的项目中经常被列为常规功能来开发.不管是在开发.NET 项目还是java项目我们会用到非常多的框架,这个功能也被集成到了框架之 ...
- Java高并发秒杀API之web层
第1章 设计Restful接口 1.1前端交互流程设计 1.2 学习Restful接口设计 什么是Restful?它就是一种优雅的URI表述方式,用来设计我们资源的访问URL.通过这个URL的设计,我 ...
- 一篇SSM框架整合友好的文章(三)
###一.SpringMVC理论 它始终是围绕 handler. 数据模型 model. 页面view进行开发的. 运行流程图: 通过mvc配置文件,配置"中央处理器"dispat ...
- Java SSM框架理论知识
一.Spring理论知识 1.Spring 在ssm中起什么作用? Spring:轻量级框架 作用:Bean工厂,用来管理Bean的生命周期和框架集成. 两大核心:1.IOC/DI(控制反转/依赖注入 ...
- springmvc学习笔记(理论)
1.springmvc是什么? Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层 进行职责解耦,基 ...
- SpringMVC的理论
围绕Handler开发 数据Model 页面View SpringMVC的运行流程: 1.用户发送一个请求,所有的请求都会映射到DispatcherServlet(中央控制器的servlet,该ser ...
- Dubbo与Zookeeper、SpringMVC整合与使用(干货-理论放一遍。。。还未完结!)
Dubbo跟Zookeeper的简介分享两个不错的链接: Dubbo简介:http://shiyanjun.cn/archives/325.html Zookeeper简介:http://www.op ...
- SpringMVC一路总结(一)
SpringMVC听闻已久,早在去年就被学长问到关于SpringMVC的基础知识,当时也没在意.主要是工作中也没有用到关于SpringMVC的技术,因此免于没有时间和精力的借口就没有接触和学习Spri ...
随机推荐
- vue阻止右键默认行为
vue阻止右键默认行为 <!--不阻止右键菜单(浏览器行为),右键执行函数show--> <input type="button" value="按钮& ...
- JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
js 笛卡尔积算法的实现代码,据对象或者数组生成笛卡尔积,并介绍了一个javascript多重数组笛卡尔积的例子,以及java实现笛卡尔积的算法与实例代码. 一.javascript笛卡尔积算法代码 ...
- CAFFE(二):Ubuntu 下安装OpenCv 3.4.1
一步:进入OpenCv官网 选择 3.4.1 版本的 source , 下载 opencv-3.4.1.zip ,如下图选择Sources下载 解压缩到home目录.并执行如下代码: { cd ~/o ...
- JS中数组初始化以及赋值
.指定长度,然后初始化 ); ;index < ;index++){ vArray[index] = index; } 2.不指定长度,然后初始化 var vArray = new Array( ...
- 我的第一个Node.js项目
Node.js的安装通常有两种方式:自己编译源代码和使用编译好的文件,我这里使用编译好的文件目前我的home目录下有刚下载来的node-v4.2.3-linux-x641.首先解压缩 tar xvf ...
- github(工蜂)密码过期时sourcetree重新登录
- iOS RAC使用补充
1 延迟执行 [[RACScheduler mainThreadScheduler] afterDelay: schedule:^{ NSLog(@"延迟执行.."); }]; ...
- 5、docker容器数据卷: -v添加共享传递容器数据卷
1.是什么 1.docker理念 先来看看Docker的理念:* 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的* 容器之间希望有可能共享数据 2.保 ...
- Codeforces Round #452 (Div. 2) 899E E. Segments Removal
题 OvO http://codeforces.com/contest/899/problem/E Codeforces Round #452 (Div. 2) - e 899E 解 用两个并查集(记 ...
- 【Wince-禁止重复启动程序】Wince 不重复启动程序
创建类Mutex.cs: using System; using System.Linq; using System.Collections.Generic; using System.Text; u ...