SpringMVC的基本概念

三层架构

我们的开发一般都是基于c/s或者b/s架构。在JavaEE开发中,几乎全都是基于B/S架构开发。在B/S架构中,系统标准的三层架构包括:表现层,业务层,持久层。

表现层

就是我们常说的web层。它负责接收客户端请求,向客户端响应结果。通常客户端使用http协议请求Web层,web需要接收http请求,完成http响应。
表现层包括展示层和控制层:控制层负责接收请求,展示层负责结果的展示。
表现层依赖业务层,接收到客户端请求一般会调用业务层进行业务处理,并将处理结果响应给客户端。
表现层的设计一般都是用MVC模型。(MVC为表现层的设计模型,和其他层没有关系)

业务层

也就是我们常说的service层。它负责业务逻辑处理,和开发项目的需求息息相关。
web层依赖业务层,但业务层不依赖web层
业务层在业务处理时可能会依赖持久层,如果要对数据持久化需要保证事务一致性。(事务应该放到业务层来做)

持久层

就是我们常说的dao层。负责数据持久化,包括数据层即数据库和数据访问层,数据库是对数据进行持久化的载体,数据访问层是业务层和持久成交互的接口。
业务层需要通过数据访问层将数据持久化到数据库。
通俗来说,持久层就是和数据库交互,对数据库表进行增删改查。

mvc模型

MVC: Model(模型)- View(视图)- Controller(控制器)缩写。一种用于设计创建web应用程序表现层的模式。
- - Model(模型):通常指的就是我们的数据模型。一般情况下用于封装数据
- - View(视图):通常指的就是jsp/html。作用一般就是展示数据,通常视图是依据模型数据创建的
- - Controller(控制器):是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑的

Demo:
要保存用户信息,该用户信息包含了姓名,性别,年龄等。
这个时候表单数据年龄限制(1~100),姓名性别补鞥呢为空,并且将数据填充到模型中
此时除了js的校验外,服务端也应该有数据准确性校验,而这部分就交给控制器来做。
控制器校验失败:由控制器负责把错误页面展示给使用者。
控制器校验成功:由控制器负责把数据填充到模型,并且调用业务层实现完成的业务需求。

SpringMVC案例

入门

SpringMVC 是一种基于Java的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于SpringFramework的后续产品,已经融合在Spring Web Flow中。
Spring框架提供了构建web应用程序的全功能MVC模块。使用Spring 可插入的MVC架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架(如Structs2)
SpringMVC已经成为目前最主流的MVC框架之一。并且随着Spring3.0的发布,成为最优秀的MVC框架。
它通过一套注解,让一个简单的Java类成为处理请求的控制器,无需实现任何接口,同时还支持RESTful编程风格的请求。

优势

  1. 清晰的角色划分:
    1.1 前端控制器(DispatcherServlet)
    1.2 请求到处理器映射(HandlerMapping)
    1.3 处理器配置(HandlerAdapter)
    1.4 视图解析器(ViewResolver)
    1.5 处理器或者页面控制器(Controller)
    1.6 验证器(Validator)
    1.7 命令对象(Command 请求参数绑定到的对象就叫命令对象)
    1.8 表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)
  2. 分工明确,而且扩展点相当灵活,很容易扩展,虽然几乎不需要。
  3. 由于命令对象就是一个POJO,无需集成框架特定API,可以使用命令对象直接作为业务对象。
  4. 和Spring其他框架无缝集成,是其他Web框架所不具备的。
  5. 可适配,通过HandlerAdapter可以支持任意的类作为处理器。
  6. 可定制性,HandlerMapping,ViewResolver等能够非常简单的定制。
  7. 功能强大的数据验证、格式化、绑定机制。
  8. 利用Spring提供的Mock对象能够非常简单的进行Web层单元测试。
  9. 本地化、主题的解析的支持,更容易进行国际化和主题的切换
  10. 强大的JSP标签库,是JSP编写更容易
  11. RESTful风格的支持、简单的文件上传、约定大于配置的契约式编程支持、基于注解的零配置支持等等。

Demo

  1. File->New->Module…
  2. Maven->JDK1.8->Create from archetype->maven-archetype-webapp
  3. 配 groupId(com.itcast) 和 artifactId(springmvc_day01_start)
  4. Maven项目创建过慢添加键值对:archetypeCatalog=internal
  5. 完善项目目录,添加java源码文件夹和resource资源文件夹
  6. 引入坐标依赖
  7. 引入前端控制器(等等)
  8. 写springmvc.xml配置文件
  9. 部署服务, 选择Deployment,+发布项目

【SpringMVC】基本概念相关推荐

  1. SpringMVC的概念

    SpringMVC的概念:Spring实现web模块:简化web开发 POJO: Plain Old Java Object

  2. 一篇复习一下Spring和SpringMVC基本概念

    什么是Spring,为什么你要学习spring? 你第一次接触spring框架是在什么时候?相信很多人和我一样,第一次了解spring都不是做项目的时候用到,而是在网上看到或者是听到过一个叫做spri ...

  3. SpringMVC的核心思想,概念及特点

    学习目标 MVC思想 1.什么叫MVC? MVC叫,模型-视图-控制器(MVC)是一个中所周之的以设计界面应用程序为基础的设计思想.它主要通过分离模型.视图及控制器在应用程序中的角色将业务逻辑从界面中 ...

  4. JAVAEE框架之SpringMVC基础

    JAVAEE框架之Spring 九.SpringMVC基础 ​ 概念:SpringMVC 是类似于 Struts2 的一个 MVC 框架,在实际开发中,接收浏览器的请求响应,对数据进行处理,然后返回页 ...

  5. SpringMVC之使用SpringMVC获取参数与返回数据

    ⭐️前面的话⭐️ 本篇文章将介绍SpringMVC的概念,SpringMVC项目的创建,如何使用SpringMVC实现前端参数的获取与后端参数的返回等内容.

  6. Springboot,SSM及SSH的概念、优点、区别及缺点

    Springboot的概念: 是提供的全新框架,使用来简化Spring的初始搭建和开发过程,使用了特定的方式来进行配置,让开发人员不在需要定义样板化的配置.此框架不需要配置xml,依赖于像MAVEN这 ...

  7. SpringMVC基础

    SpringMVC基础 1.SpringMVC概述 1.1 三层架构 三层架构: 表现层:负责数据展示 业务层:负责业务处理 数据层:负责数据操作 1.2 MVC MVC(Model View Con ...

  8. Springmvc介绍及与Mybatis整合技术详解

    Springmvc 1.概念 springmvc是spring framework一个模块,不需要与spring框架整合 2.框架原理(掌握) 2.1 执行流程 第一步:发起请求到前端控制器(Disp ...

  9. springMVC_day01_概念_入门_@RequestMapping注解_参数封装与绑定_编码过滤器

    文章目录 一.知识回顾 二.三层架构和MVC设计模式 三.springMVC的概念 四.SpringMVC的HelloWorld(重点) 1.引入依赖 2.spring-mvc.xml配置 3.web ...

  10. 我的第一个Spring MVC程序

    1.先简单说一下SpringMVC的概念: Spring MVC是Spring为表现层提供的基于MVC设计模式的轻量级Web框架,是目前最主流的 MVC框架之一.它与Struts2框架一样,都属于MV ...

最新文章

  1. linux设备模型之Class
  2. PMM (Percona MySQL Monitor) 部署
  3. nacos 怎么配置 里的配置ip_nacos集群配置
  4. 财务一体化项目,进度与计划8
  5. java.net.BindException: Address already in use解决方法
  6. SAP License:ERP失败案例集
  7. Storm入门-Storm与Spark对比
  8. 葱油拌面的做法 手残党都能学会
  9. 大淘客的index.php,index.php · zenozhengs/大淘客CMS底部菜单修改版 - Gitee.com
  10. 修改数据包欺骗服务器,关于arp欺骗修改数据包
  11. 魏小亮:参加编程竞赛对实际工作的用处
  12. Java8新特性学习(lambda,函数式接口,stream,Optional)
  13. Python写诗如梦令·李清照
  14. 小米VR nolo 安装调试简介
  15. matlab的fir1截止频率的设置
  16. ac远程web管理 r470gp tl_折腾家庭局域网,TP-LINK R470AC1200 晒单
  17. uniapp 分享缩略图过大怎么办_新版本微信下,如何设置分享到朋友圈的缩略图?...
  18. android 股票曲线 动态,各种曲线图表。矩形 圆形,股票
  19. 打开管家婆软件提示:已停止工作/程序无响应
  20. CentOS7重置密码

热门文章

  1. 手把手教你搭建 Git 服务器
  2. 【Sql Server】DateBase-视图
  3. Python中正则表达式用法 重点格式以这个为准_首看_各种问题
  4. Attention is all your need 谷歌的超强特征提取网络——Transformer
  5. 漫谈Word2vec之skip-gram模型
  6. npm install遇到ENOENT: no such file or directory, rename错误
  7. LeetCode简单题之找到最近的有相同 X 或 Y 坐标的点
  8. 光谱投影颜色感知器件与围栅多桥沟道晶体管技术
  9. 深度学习数据集定义与加载
  10. Jittor 的Op, Var算子