当前位置: 首页 > news >正文

【JavaEESpring】Spring Web MVC⼊⻔

Spring Web MVC

  • 1. 什么是 Spring Web MVC
    • 1.1 什么是 MVC ?
    • 1.2 是什么 Spring MVC?
  • 2. 学习 Spring MVC
    • 2.1 建立连接
    • 2.2 请求
    • 2.3 响应
  • 3. 相关代码链接

1. 什么是 Spring Web MVC

官⽅对于 Spring MVC 的描述是这样的:
在这里插入图片描述

1.1 什么是 MVC ?

  • MVC 是 Model View Controller 的缩写
  • 它是软件⼯程中的⼀种软件架构设计模式,它把软件系统分为模型、视图和控制器三个基本部分

在这里插入图片描述

  • View(视图) 指在应用程序中专门用来与浏览器进行交互, 展示数据的资源
  • Model(模型) 是应用程序的主体部分, 用来处理程序中数据逻辑的部分
  • Controller(控制器) 可以理解为一个分发器, 用来决定对于视图发来的请求, 需要用哪一个模型来处理, 以及处理完成后需要跳到哪一个视图; 即用来连接视图和模型

1.2 是什么 Spring MVC?

  • MVC 是⼀种架构设计模式, 也⼀种思想, ⽽ Spring MVC 是对 MVC 思想的具体实现.

  • SpringMVC还是⼀个Web框架.

  • 总结来说,Spring MVC 是⼀个实现了 MVC 模式的 Web 框架.

  • Spring web 和SpringBoot的关系

    • Spring Boot 可以添加很多依赖, 借助这些依赖实现不同的功能. Spring Boot 通过添加Spring Web MVC框架, 来实现web功能.
  • Spring在实现MVC时, 也结合⾃⾝项⽬的特点, 做了⼀些改变, 相对⽽⾔, 下⾯这个图或许更加合适⼀些.
    在这里插入图片描述

2. 学习 Spring MVC

主要学习的方面

  1. 建⽴连接:将⽤⼾(浏览器)和 Java 程序连接起来,也就是访问⼀个地址能够调⽤到我们的 Spring 程序。
  2. 请求: ⽤⼾请求的时候会带⼀些参数,在程序中要想办法获取到参数, 所以请求这块主要是 获取参数的功能.
  3. 响应: 执⾏了业务逻辑之后,要把程序执⾏的结果返回给⽤⼾, 也就是响应.

2.1 建立连接

  • @RequestMapping 来实现 URL 路由映射
  • @RestController 指定 Spring 需要扫描的类, 只有被@RestController 修饰的类, Spring 才会在该类中找到对应的 @RequestMapping 修饰的方法
  • @RequestMapping 即可修饰类,也可以修饰⽅法当修饰类和⽅法时,访问的地址是类路径 + ⽅法路径
  • @RequestMapping 支持各种请求方法

2.2 请求

  • Spring MVC 会根据⽅法的参数名, 找到对应的参数, 赋值给⽅法; 所以请求参数的方法参数只要匹配, 就可以得到对应的值

  • 方法的参数都使用对象来接受, 基本类型使用包装类

  • 传递对象: Spring MVC 会自动解析并进行赋值; 被赋值的对象需要提供getter和setter方法

  • 后端对前端传来的参数名进行重命名

    • @RequestParam在这里插入图片描述
  • Spring MVC 可以⾃动绑定数组参数的赋值

  • 传递集合

    • 默认情况下,请求中参数名相同的多个值,是封装到数组. 如果要封装到集合,要使⽤@RequestParam绑定参数关系
  • 传递 json

    • 接收JSON对象, 需要使⽤ @RequestBody 注解
  • 获取URL中参数 @PathVariable在这里插入图片描述
    在这里插入图片描述

  • 上传⽂件@RequestPart
    在这里插入图片描述

  • 获取Cookie/Session

    • 使用 Servlet 中的接口
    • 注解: @CookieValue
    • 在这里插入图片描述
    • 通过Spring MVC内置对象HttpSession 来获取
  • 获取Header

    • @RequestHeader

2.3 响应

@RestController 和 @Controller的联系和区别

  • @RestController = @Controller + @ResponseBody
  • @Controller : 定义⼀个控制器, Spring 框架启动时加载, 把这个对象交给Spring管理.
  • @ResponseBody : 定义返回的数据格式为⾮视图, 返回⼀个 text/html 信息
  • 所以@RestController返回的是 text/html , 而@Controller返回的是静态页面

返回 JSON 数据

  • 后端⽅法返回结果为对象

3. 相关代码链接

代码获取连接

http://www.lryc.cn/news/227464.html

相关文章:

  • flutter逆向 ACTF native app
  • 【Redis】set 集合
  • 【算法与设计模式】
  • Javaweb之javascript的小案例的详细解析
  • Vant 移动端UI 组件自动引入
  • 敏捷开发是什么?敏捷开发流程是怎么样的?
  • 【CASS精品教程】cass3d 11.0加载超大影像、三维模型、点云数据
  • Unity Input System最简单使用
  • 3.前端调式(断点调式)
  • 拓扑排序软件设计——ToplogicalSort_app(含有源码、需求分析、可行性分析、概要设计、用户使用手册)
  • ESP32网络开发实例-将数据保存到InfluxDB时序数据库
  • NestJS——基于Node.js 服务器端应用程序的开发框架
  • EXCEL中将UTC时间戳转为日期格式(精确到秒)
  • 2023年【起重机械指挥】考试试卷及起重机械指挥操作证考试
  • 组件的设计原则
  • 安卓编译命令mm和mmm的区别(mm编译当前工作目录,mmm可编译指定目录)
  • 计算机毕业设计 基于Springboot的影院购票管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 使用.net 构建 Elsa Workflow
  • open clip论文阅读摘要
  • Vue3像Vue2一样在prototype(原型)上挂载数据
  • API接口自动化测试
  • 基于springboot实现驾校管理系统项目【项目源码】
  • 稀疏数组的保存优化(java版本)
  • Git GUI、SSH协议和IDEA中的Git使用详解
  • Linux下C++调用python脚本实现LDAP协议通过TNLM认证连接到AD服务器
  • 计算机毕业设计选题推荐-校园交流平台微信小程序/安卓APP-项目实战
  • FlinK之检查点与保存点机制
  • UE5 新特性 Nanite 开启
  • 仿写知乎日报第四周
  • MySQL join原理及优化