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

SpringMVC系列(三)(请求处理的十个实验(上))

0 引言

作者正在学习SpringMVC相关内容,学到了一些知识,希望分享给需要短时间想要了解SpringMVC的读者朋友们,想用通俗的语言讲述其中的知识,希望与诸位共勉,共同进步!

本系列会持续更新!!可以放心食用!

1 本篇内容的十个请求处理实验

主要通过以上10个实验来充分掌握请求参数的处理!!

2 十个请求处理实验中的前五个

2.1 实验一 使用普通变量,请求参数

做这10个实验之前,需要有一个发送请求参数的前端网页,这个网页已经准备好了,文件可以在此连接中下载:
    前端请求文件 

然后将它放进当前项目工中的src--resources--static目录下,当项目启动时,在网页中输入localhost:8080(如果在配置文件中修改过端口的,请使用修改后的端口)即可访问下面这个页面:

当我们输入用户名/密码/电话号码以及是否同意用户协议后,点击注册:

会发现网址上的请求地址为:

因为键值对都是写在请求地址中,所以我们可以确定前端是以Get类请发送给的并且访问的地址为/handle01,所以我们需要在后端编写:

    @RequestMapping(value = "/handle01")public String handle01(String username, String password, String cellphone, boolean  agreement){System.out.println("username:"+username);System.out.println("password:"+password);System.out.println("cellphone:"+cellphone);System.out.println("agreement:"+agreement);return "ok!!!";

当发送过来的时候是普通的参数时,我们可以直接在方法的变量中接下前端送过来的数值,运行成功后,网页端:

后端:

需要注意的是:方法中的变量名称需要和前端发来请求所带的关键词一一对应!!!!,如果我想随心所欲地给变量取名字,那应该怎么办呢?使用实验二的方法!

2.2 实验二 @RequestParam 明确参数使用

变量名可以随便取名称,但代价就是要在变量名前使用@RequestParam注解标注出这个变量对应的关键词是什么,代码是这样写的:

    @RequestMapping(value = "/handle02")public String handle02(@RequestParam("username") String un,@RequestParam("password") String pwd,@RequestParam("cellphone") String cp,@RequestParam("agreement") boolean  ok){System.out.println("username:"+un);System.out.println("password:"+pwd);System.out.println("cellphone:"+cp);System.out.println("agreement:"+ok);return "ok!!!";

这样的话当实验二点击注册后:

网页端:

后端:

2.3 实验三 使用POJO匹配封装所有的参数

有没有发现,如果使用上面来两种实验的话,有太多属性值需要一个一个传输,非常麻烦,所以实验三给出了一种很方便的写法。

进入实验三:

然后先发送个注册请求,点击F12打开网页中的请求配置发现是以POST的方式发送的,内容应该被保存在请求体中:

所以可以在后端java编写代码:

首先先编写一个Bean对象,并一一封装了相对应的属性值:

import lombok.Data;@Data
public class person {private String username;private String password;private String cellphone;private boolean agreement;
}

随后在Comtroller中编写:

    @RequestMapping(value = "/handle03")public String handle03(Person  person){System.out.println(person);return "ok!!!";}

网页端:

后端:

为什么可以这样?因为SpringBoot可以自动把请求参数与POJO中的输性进行一一对应!!

2.4 实验四 使用@RequstHeader注解获得请求头中的内容

进入实验四:

然后先发送个请求,点击F12打开网页中的请求配置中请求标头:

就希望获得其中某些键值对,我应该如何编写程序呢?比如我想获得请求头中的Host:

    @RequestMapping(value = "/handle04")public String handle04(@RequestHeader("Host") String host){System.out.println(host);return "ok!!!";}

网页端:

后端:

打印出了Host关键词中的数值:

2.5 实验五 获取CookieValue的值

如果有不知道Cookie是什么的同学可以看看:

阿里二面:你说说Cookie、Session、Token的区别?傻傻分不清。。。_哔哩哔哩_bilibili

我们可以在这里创建一个Cookie的键值对作为测试:

当我加上去之后,只要网站上不关闭,每次发送请求都可以在请求头中看见Cookie的数值:

程序:

    @RequestMapping(value = "/handle05")public String handle05(@CookieValue("hehe") String hehe){System.out.println(hehe);return "ok!!!";}

网页端:

后端:

 3 十个实验的测试代码

如果大家也不想敲代码的话,那就可以直接在我的gitee地址里面下载十个实验的测试代码:

lin/请求测试十个实验https://gitee.com/lin2002wei/Request_code

参考:

P91-P95

095.请求处理 - 实验5:@CookieValue - 获取cookie的值_哔哩哔哩_bilibili

http://www.lqws.cn/news/517033.html

相关文章:

  • CLIP中学习“少样本线性探针”(Few-shot Linear Probe)学习笔记
  • 完成国产化替代!昆明卷烟厂用时序数据库 TDengine 重塑工业时序数据平台
  • Odoo API 集成:XML-RPC 与 JSON-RPC 的比较
  • WinUI3_设置原生态标题栏样式
  • 9.11 Indoor localization based on factor graphs: A unified framework
  • OCR表格识别效果对比
  • GaussDB实例级自动备份策略:构建数据安全的“自动防护网”
  • 一步部署APache编译安装脚本
  • 在IIS上运行PHP时显示PHP错误信息
  • 支持PY普冉系列单片机调试工具PY32linK仿真器
  • BT138-600-ASEMI智能家电专用BT138-600
  • Cookie 在 HTTP 中的作用HTTP 中的状态码
  • 网络协议 / 加密 / 签名总结
  • Mysql8.0版本未卸载干净如何重新下载
  • Go 语言并发编程
  • web安全之h2注入系统学习
  • GC2803:八通道NPN达林顿管的高效驱动解决方案
  • 无人机灯光驱动模块技术解析
  • 内存条与CPU三级缓存之间的区别
  • HarmonyOS 应用权限管控流程
  • 异步爬虫 原理与解析
  • RabbitMq中启用NIO
  • Android14音频子系统 - 系统框架概述
  • Python爬取TMDB电影数据:从登录到数据存储的全过程
  • 康谋方案 | ARXML 规则下 ECU 总线通讯与 ADTF 测试方案
  • JMeter中变量如何使用?
  • 标题:2025金融护网行动实战指南:从合规防御到智能免疫的体系化进阶
  • C++ 多线程深度解析:掌握并行编程的艺术与实践
  • 自动化测试--App自动化之项目实战脚本编写及封装流程
  • Linux 怎么恢复sshd.service