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

Spring MVC 详解(连接、获取参数、返回数据)

在之前我们先简单那谈谈Spring、SpringBoot以及Spring MVC框架之间有什么关系?

首先Spring是一个框架,SpringBoot脚手架是为了快速开发Spring框架而创造的技术。可以理解为SpringBoot又在Spring上面包了一层壳子,是基于Spring的,是为了让使用Spring更爽,其核心还是Spring。然后,Spring MVC是Spring中的一个Web框架模块,是基于Servlet API构建的。

那MVC又是什么呢?

MVC 是Model View Controller 的首字母缩写,翻译中文就是“模型、视图、控制器”,它是一种设计模式,这种设计模式将软件(项目)分为三部分:模型、视图和控制器。

MVC和 Spring MVC是什么关系?

MVC是一种设计思想,而Spring MVC是一个具体的实现框架。有点类似IoC和DI的关系了,IoC是一种思想,而DI是这种思想的一种具体实现。

Spring MVC是一个基于MVC设计模式和Servlet API实现的Web 项日,同时Spring MVC 又是Spring 框架中的一个WEB模块,它是随着Spring 的诞生而存在的一个框架。Spring 和 Spring MVC诞生的历史是比较久远,在它们之后才有了Spring Boot。

Spring MVC项目如何创建呢?

基于Spring Boot框架添加一个Spring Web(它使用的就是Spring MVC)依赖,此时项目就变成了Spring MVC项目。

本文主要从以下三个方面进行阐述:

1、实现用户和程序的映射(在浏览器输入URL地址之后,能够在程序中匹配到相应方法)。

2、服务器端获取到用户的请求参数。

3、服务器端要将结果返回给用户(前端)。

1、实现用户和程序的映射

方法一:@RequestMapping("/ xxx")

@RequestMapping特征:

1、@RequestMapping 既能修饰类((可选)也能修饰方法。

2、默认情况下@RequestMapping 既支持 POST请求方式,也支持GET请求方式。

@RequestMapping 参数扩展(只支持某种类型的请求方式,比如 POST、GET、PUT等类型的请求方式):

方法2:使用@PostMapping ("/xxx")

方法3:使用@GetMapping("/xxx")

2、服务器端获取到用户的请求参数

1.获取单个参数

2.获取多个参数

3.获取对象

扩展功能:参数重命名

使用@RequestParam注解,当前端传过来的参数名称与我们在后端所写的参数名字不相对应的时候,而且还不能改动前端代码的时候以及后端代码大量使用了这个名称不便修改时,这个时候往往我们可以通过参数重命名的方式来解决。

比如前端传过来的是name,而我们后端大量使用的是username:

@RequestParam注意事项:如果在参数中添加@RequestParam注解,那么前端一定要传递此参数,否则就会报错,如果想要解决此问题,可以给@RequestParam里面添加required = false。

4.接收.JSON格式的数据

使用Postman模拟发送JSON数据给服务器:

5.从URL地址中获取参数(不是从URL地址中的参数部分获取参数)

6.上传文件

在上传文件之前,先讲讲不同运行平台的配置文件设置:

1、新建不同平台的配置文件(不同平台配置文件的命名规则: application-平台.yml(properits)【必须这样命名】)

2、在主配置文件中设置运行的配置文件

3.服务器端代码

4.使用Postman模拟上传文件

这个时候就会在目录下面看到上传的文件了:

7获取Cookie

a) Servlet获取Cookie 的方法

b)使用@Cookievalue注解实现Cookie 的读取

8、获取Header(请求头)里面的信息

a) Servlet获取Header的方法

b)使用@RequestHeader注解实现

9存储和获取Session

存储Session: Servlet和 SpringMVC操作方式是一样的。

获取Session方法1(Servlet 模式):

获取session方式2:@SessionAttribute

3、服务器端要将结果返回给用户(前端)

1.返回一个非静态页面的数据,使用@ResponseBody 注解

@ResponseBody 可以修饰类:表示当前类中所有方法都会返回一个非静态页面的数据;可以修饰方法:表示当前方法返回的是一个非静态页面的数据。否则默认返回的是一个html页面

2.使用@RestController(=Controller+ResponseBody)

3.后端接受JSON数据的标准格式

4.请求重定向和请求转发

请求转发(forward)实现方式1:(请求转发是服务器端帮用户实现的)

请求转发的实现方式2:

请求重定向(redirect)的实现方式1:(重定向的请求发生在客户端(浏览器端))

请求重定向实现方式2:

请求重定向和请求转发有什么区别?

1.定义不同

2.跳转方式不同

3.数据共享不同

4.最终URL地址不同

5.代码实现不同

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

相关文章:

  • IT女神节(致敬中国IT界永远的女神严蔚敏-数据结构)
  • Java 集合分页
  • 代码随想录之哈希表(力扣题号)
  • 如何在知行之桥EDI系统中定时自动更换交易伙伴AS2证书?
  • 辽宁千圣文化:抖音店铺怎么做二次优化?
  • 检测js代码中可能导致内存泄漏的工具
  • linux和centos读写日期到文件并对日期进行比较
  • Espressif-IDE v2.8.0 新增功能及开发方向
  • C++学习笔记之基础
  • 博弈论小课堂:零和博弈(找到双方的平衡点)
  • Redisson 分布式锁(基于v1.3.1)
  • go并发之美·多个channel合并/多个数据流合并
  • 数据库多租户实现三种方式
  • 单协议 2.4GHz CC2651R31T0RGZR/CC2651R31T0RKPR无线MCU 802.15.4,蓝牙5.2
  • 【项目精选】基于struts+hibernate的采购管理系统
  • 在找docker命令和部署?看这一篇文章就够了。
  • NTLM协议原理分析
  • SOC计算方法:电流积分+开路电压
  • linux mysql启动报错处理方案
  • Qt配置VS的编译环境(以MSVC2015 64bit为例)
  • iOS 9.3.5越狱环境安装配置
  • mac电脑解决Error: command failed: npm install --loglevel error --legacy-peer-deps
  • Java中对象的finalization机制
  • proteus光敏电阻电路的arduino仿真
  • MySql面试精选—慢查询如何优化
  • 一款OutLook信息收集工具
  • java多线程(二一)并发协作生产者消费者设计模式
  • Win YAPI + Jenkins 实现接口自动化测试
  • 【计算机视觉 自然语言处理】什么是多模态?
  • 2023百度面试真题