应用系统三层架构:
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 理论的更多相关文章

  1. SpringMVC 理论与有用技术(一) 简单、有用、易懂的几个实例

    SpringMVC先来看一下百度百科中的定义; Spring MVC属于SpringFrameWork的兴许产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应 ...

  2. SpringMVC 理论与有用技术(二)文件上传

    文件上传相信大家都做过,差点儿全部的项目都有上传文件的功能,尤其是BS架构的项目中经常被列为常规功能来开发.不管是在开发.NET 项目还是java项目我们会用到非常多的框架,这个功能也被集成到了框架之 ...

  3. Java高并发秒杀API之web层

    第1章 设计Restful接口 1.1前端交互流程设计 1.2 学习Restful接口设计 什么是Restful?它就是一种优雅的URI表述方式,用来设计我们资源的访问URL.通过这个URL的设计,我 ...

  4. 一篇SSM框架整合友好的文章(三)

    ###一.SpringMVC理论 它始终是围绕 handler. 数据模型 model. 页面view进行开发的. 运行流程图: 通过mvc配置文件,配置"中央处理器"dispat ...

  5. Java SSM框架理论知识

    一.Spring理论知识 1.Spring 在ssm中起什么作用? Spring:轻量级框架 作用:Bean工厂,用来管理Bean的生命周期和框架集成. 两大核心:1.IOC/DI(控制反转/依赖注入 ...

  6. springmvc学习笔记(理论)

    1.springmvc是什么? Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层 进行职责解耦,基 ...

  7. SpringMVC的理论

    围绕Handler开发 数据Model 页面View SpringMVC的运行流程: 1.用户发送一个请求,所有的请求都会映射到DispatcherServlet(中央控制器的servlet,该ser ...

  8. Dubbo与Zookeeper、SpringMVC整合与使用(干货-理论放一遍。。。还未完结!)

    Dubbo跟Zookeeper的简介分享两个不错的链接: Dubbo简介:http://shiyanjun.cn/archives/325.html Zookeeper简介:http://www.op ...

  9. SpringMVC一路总结(一)

    SpringMVC听闻已久,早在去年就被学长问到关于SpringMVC的基础知识,当时也没在意.主要是工作中也没有用到关于SpringMVC的技术,因此免于没有时间和精力的借口就没有接触和学习Spri ...

随机推荐

  1. 初学java4 编译器优化

    编译器自动转义 short/char/byte 在定义变量时,后面赋值小于边界值,即可自动转义 右侧值小于左侧范围,编译器直接强转 右侧值大于左侧范围,编译器报错 short a = 10+1; // ...

  2. HashMap闭环(死循环)的详细原因(转)

    为何出现死循环简要说明 HashMap是非线程安全的,在并发场景中如果不保持足够的同步,就有可能在执行HashMap.get时进入死循环,将CPU的消耗到100%. HashMap采用链表解决Hash ...

  3. WPF实战案例-MVVM模式下用附加属性在Xaml中弹出窗体

    嗯..最近回家去了,2个月没写过代码了,面试只能吹牛,基础都忘了,今天回顾一下,分享一篇通过附加属性去处理窗体弹出的情况. 或许老司机已经想到了,通过设置附加属性值,值变更的回调函数去处理窗体弹出,是 ...

  4. apache thinkphp5 强制https://访问

    根目录下,.htaccess文件 <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine On ...

  5. Error:Execution failed for task ':app:compileDebugJavaWithJavac'

    百度一下呗 查找了各种解决方案,都不对症. 最后发现,造成这种异常的原因有很多.具体的还是要去终端编译,查看到底是什么地方出错了,然后具体问题具体分析. 终端进入项目的根目录,然后输入命令 ./gra ...

  6. Delphi 重载方法与重定义方法

  7. Struts2之jsp页面取得当前actionName

    在页面上加入<s:debug />, 我们就可以查看stackContext的信息 其中有一项:Key为com.opensymphony.xwork2.ActionContext.name ...

  8. redis——redis的一些核心把握

    redis单线程,为什么比较快 单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有网络请求,其他模块仍用了多个线程.redis能够快速执行的原因有三点: (1) 绝大 ...

  9. String、StringBuffer和StringBuilder区别

    String.StringBuffer和StringBuilder区别 1.长度是否可变 String 是被 final 修饰的,他的长度是不可变的,就算调用 String 的concat 方法,那也 ...

  10. 类的命名空间与卸载详解及jvisualvm使用

    类的命名空间详解: 在上一次[https://www.cnblogs.com/webor2006/p/9108301.html]最后实验中有一个违背咱们理解的,这里回顾一下: 也就是说,"某 ...