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 ...
随机推荐
- EFcore的 基础理解<一>
1.新建.netCore Web项目.这时候,还与EF没啥关系. 2.然后添加类 Bolg.和 Post 参考这里 https://docs.microsoft.com/en-us/ef/cor ...
- localStorage、sessionStorage和cookie的区别
本地客户端(浏览器)查看三者信息: HTML4的本地存储:cookie 浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等根服务端进行数据交互. 一.co ...
- 转载:Web安全 之 X-Frame-Options响应头配置
转自:https://blog.csdn.net/u013310119/article/details/81064943 项目检测时,安全报告中存在 “X-Frame-Options” 响应头缺失问题 ...
- 【Java并发】基础
一.概述 1.1 线程与进程区别 1.2 多线程引发的性能问题 二.多线程创建方式 2.1 第一种-继承Thread类 2.2 第二种-实现Runnable接口 2.3 第三种-实现Callable接 ...
- gitbook 准备一 [python3 WSGI 初探]
目录 1.wsgi服务样例 2.请求样例 1.wsgi服务样例 # 官网样例 from wsgiref.util import setup_testing_defaults from wsgiref. ...
- 三种方式构建C#单例模式
/// <summary> /// 双检锁实现单例 /// </summary> public sealed class SingletonDoubleCheck { //s_ ...
- 【LOJ6671】EntropyIncreaser 与 Minecraft
Orz lbt Description https://loj.ac/problem/6671 Solution
- BZOJ 1135 P3488 LYZ-Ice Skates 线段树+Hall
https://www.luogu.org/problem/P3488 根据Hall定理 左边任意一个区间L-R a[i]的和sum[l~r] 都要<= (R-L+1+d)*K 把(R-L+1) ...
- SSE
最近尝试了一下服务器端的推送,之前的做法都是客户端轮询,定时向服务器发送请求.但这造成了我的一些困扰: 1:轮询是由客户端发起的,那么在服务端就不能判别我要推送的内容是否已经过期,因为我很难判断某个信 ...
- LNMP原理
在linux系统中,LNMP是目前网站主流架构之一,LNMP中L指linux系统平台,N是nginx指网站的前端程序,发布静态页面和调用外部程序解析动态页面,M是mysql指网站的后台数据库,P是PH ...