Spring MVC

简介: Spring MVC

什么是 MVC?

MVC 是一种思想, 是一种软件架构设计模式, 他把软件系统分为模型, 视图, 控制器三部分

Model 模型: 处理程序中数据逻辑部分 (真正干活的)

View 视图: 界面显示, 人机交互

Contoller 控制器: 控制管理, 选择处理模型

什么是 Spring MVC (Spring Web MVC)

简单来说: Spring MVC 是一个实现了 MVC 思想的 Web 框架

Spring MVC 是 MVC 思想的一种实现, 是基于 Servlet API 构建一个 Web 框架, 它一开始就包含在 Spring Framwork 中

Spring MVC 在实现 MVC 思想时, 结合了一些自身特点:


Spring Boot 和 Spring MVC

可以使用 Spring Boot 来创建 Spring MVC 项目

Spring Boot 是创建 Spring MVC 项目的一种方式

在 Spring Boot 中 引入依赖 – Spring Web

引入依赖后, 就可以实现 web 功能


应用分层

应用分层: 是一种 软件开发设计思想 , 将应用程序分为 N 个层次, 每层分别负责各自的职能. 多层之间协同提供完整的功能. 常分为 三层架构, 四层架构 ( MVC 设计模式, 是 应用分层的一种体现 )

三层架构

三层架构 : 是一种在 前后端分离 的设计模式中, 后端开发者常用的分层架构

它将后端开发内容, 分成三部分

  1. 表现层 : 展示数据结果, 接收用户指令 (对应于 MVC 架构中的 Controller + View)
  2. 业务逻辑层 : 处理具体的业务逻辑 (对应于 MVC 架构中的 Service )
  3. 数据层 : 存储, 管理应用程序的相关数据 (对应于 MVC 架构中的 Dao)

MVC 和 三层架构

二者从不同角度对软件工程进行了抽象

MVC 强调数据和视图分离, 将 数据处理和数据展示 分开, 通过 控制器 对二者进行组合

三层架构 强调不同维度数据处理的高内聚和解耦合, 将 交互界面, 业务处理和数据库操作 分开

但是二者都有共同的 : 解耦, 分层, 代码复用


Spring Web MVC 的常用注解

学习 Spring MVC , 其实就是学习各种 Web 开发需要用到的注解


@RequestMapping

路由映射, 建立客户端和服务器连接的桥梁

注解内容

@RequestParam

后端参数重命名, 绑定集合

默认情况下, 请求中参数名相同的多个值, 是 封装到数组中, 如果想要以集合的方式接收, 需要使用 该注解 绑定参数关系


注解内容


@RequestBody

接收 JSON 类型参数 (从请求正文中)

注解内容


此处解释 JSON: 一种数据格式, 本质就是一串字符串, 用来在不同语言中的数据传递和转换.

JSON 特点:

  • 简单易用
  • 跨平台: 就是一串字符串, 只要对应平台能够解析, 就能够使用
  • 轻量级: 相对于 “笨重的” xml 文件而言
  • 易拓展: 随意增删属性
  • 安全: 纯文本格式, 不含任何可执行代码, 也就不会执行恶意代码

PathVariable

接收路径参数

注解内容


RequestPart

上传文件

注解详解

有关 Cookie 和 Session 中的注解

Cookie: 客户端存储用户信息的机制
Session: 服务器存储用户信息的机制 (就是一个特殊对象, 本质是 “哈希表”)

Cookie 和 Session 通过 SessionId 关联, SessionId 是 Cookie 和 Session 之间的 一种 桥梁

客户端和服务器通过 SessionId 交互流程

  1. 用户提供账号和密码, 服务器进行验证
  2. 服务器验证通过, 将用户信息存储在 Session 中, 并将 SessionId 以 Set-Cookie 的方式返回给客户端
  3. 客户端收到响应, 把 SessionId 存储到 Cookie 中
  1. 客户端再次访问服务器时, 会带着 SessionId
  2. 服务器收到请求后, 会根据 SessionId 去查找 Session, 如果能查到, 就根据 Session 进行后续操作, 如果查不到, 就会创建新的 Session 会话


获取 Cookie 值

  1. 通过 Spring MVC 提供的内置对象 HttpServletRequest
  2. 通过注解 @CookieValue

Session 的存储和获取

  1. 基于 HttpServletRequestHttpServletResponse
  2. 基于 HttpSession
  3. 基于注解 @SessionAttribute

@RestController 和 Controller

@RestController = @Controller + @ResponseBody

@Controller : 将当前类交给 Spring 管理 (控制反转)

@ResponseBody : 返回的 数据格式非视图 ( text/html )

对于 @ResponseBody 来说

修饰方法 : 表示本方法返回的数据格式是非视图

修饰类 : 相当于给类中的每个方法都添加了一个 @ResponseBody 注解

目录
相关文章
|
19天前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
6天前
|
XML 缓存 前端开发
springMVC02,restful风格,请求转发和重定向
文章介绍了RESTful风格的基本概念和特点,并展示了如何使用SpringMVC实现RESTful风格的请求处理。同时,文章还讨论了SpringMVC中的请求转发和重定向的实现方式,并通过具体代码示例进行了说明。
springMVC02,restful风格,请求转发和重定向
|
2月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
2月前
|
XML JSON 数据库
SpringMVC入门到实战------七、RESTful的详细介绍和使用 具体代码案例分析(一)
这篇文章详细介绍了RESTful的概念、实现方式,以及如何在SpringMVC中使用HiddenHttpMethodFilter来处理PUT和DELETE请求,并通过具体代码案例分析了RESTful的使用。
SpringMVC入门到实战------七、RESTful的详细介绍和使用 具体代码案例分析(一)
|
2月前
|
前端开发 应用服务中间件 数据库
SpringMVC入门到实战------八、RESTful案例。SpringMVC+thymeleaf+BootStrap+RestFul实现员工信息的增删改查
这篇文章通过一个具体的项目案例,详细讲解了如何使用SpringMVC、Thymeleaf、Bootstrap以及RESTful风格接口来实现员工信息的增删改查功能。文章提供了项目结构、配置文件、控制器、数据访问对象、实体类和前端页面的完整源码,并展示了实现效果的截图。项目的目的是锻炼使用RESTful风格的接口开发,虽然数据是假数据并未连接数据库,但提供了一个很好的实践机会。文章最后强调了这一章节主要是为了练习RESTful,其他方面暂不考虑。
SpringMVC入门到实战------八、RESTful案例。SpringMVC+thymeleaf+BootStrap+RestFul实现员工信息的增删改查
|
2月前
|
JSON 前端开发 Java
Spring MVC返回JSON数据
综上所述,Spring MVC提供了灵活、强大的方式来支持返回JSON数据,从直接使用 `@ResponseBody`及 `@RestController`注解,到通过配置消息转换器和异常处理器,开发人员可以根据具体需求选择合适的实现方式。
94 4
|
2月前
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
88 3
|
2月前
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
89 2
|
3月前
|
前端开发 Java 应用服务中间件
我以为我对Spring MVC很了解,直到我遇到了...
所有人都知道Spring MVC是是开发的,却鲜有人知道Spring MVC的理论基础来自于1978 年提出MVC模式的一个老头子,他就是Trygve Mikkjel Heyerdahl Reenskaug,挪威计算机科学家,名誉教授。Trygve Reenskaug的MVC架构思想早期用于图形用户界面(GUI) 的软件设计,他对MVC是这样解释的。MVC 被认为是解决用户控制大型复杂数据集问题的通用解决方案。最困难的部分是为不同的架构组件想出好的名字。模型-视图-编辑器是第一个。
115 1
我以为我对Spring MVC很了解,直到我遇到了...
|
3月前
|
前端开发 Java API
Spring Boot 中的 MVC 支持
### Spring Boot 注解摘要 - **@RestController** - **@RequestMapping** - **@PathVariable** - **@RequestParam** - **@RequestBody**
28 2
下一篇
无影云桌面