【Spring】获取cookie,session,header(3)

本系列共涉及4个框架:Sping,SpringBoot,Spring MVC,Mybatis。

博客涉及框架的重要知识点,根据序号学习即可。

目录

本系列共涉及4个框架:Sping,SpringBoot,Spring MVC,Mybatis。

博客涉及框架的重要知识点,根据序号学习即可。

1、获取cookie

1.1传统版本【使用HttpServletRequest】

1.2简洁版本【使用注解@CookieValue】

2、获取session

2.1传统版本【使用HttpServletRequest】

2.2简洁版本【使用注解@SessionAttribute】

2.3简洁版本【使用HttpSession】

3、获取header

3.1传统版本【使用HttpServletRequest】

3.2简洁版本【使用注解@RequestHeader】

最后:无论使用传统的HttpServletRequest获取,还是使用注解获取,大差不差,关键要懂其原理,当然更推荐使用注解的方式,因为更方便(哈哈哈哈哈哈代码少!!!)

1、获取cookie

1.1传统版本【使用HttpServletRequest】

    @RequestMapping("/m11")public String m11(HttpServletRequest request, HttpServletResponse response){//获取所有的cookie信息Cookie[] cookies=request.getCookies();//打印cookie信息StringBuilder builder=new StringBuilder();if(cookies!=null){for(Cookie ck:cookies){builder.append(ck.getName()+":"+ck.getValue());}}return "Cookie信息:"+builder;}

运行结果:

没有获取到cookie是因为没有设置,下图展示如何自定义cookie【 在Application中手动添加cookie,其实这是不安全的,后端需要进行cookie的校验】

1.2简洁版本【使用注解@CookieValue】

 @RequestMapping("/m12")public String m12(@CookieValue("zhangsan") String name){//简洁版获取cookie,使用注解return "获取到的name:"+name;}

注意区分这里的zhangsan 和name ,搞懂为啥不是第一个cookie,而是以zhangsan为name的cookie。因为@CookieValue

 

2、获取session

2.1传统版本【使用HttpServletRequest】

    @RequestMapping("/m13")public String m13(HttpServletRequest request){//session的存储//获取session对象HttpSession session =request.getSession();//与getSession(true)一样,默认值为trueif(session!=null){session.setAttribute("u","123");}return "Session存储成功";}@RequestMapping("/m14")public String m14(HttpServletRequest request){//session的读取//如果session不存在,不会自动创建sessionHttpSession session=request.getSession(false);String username=null;if(session!=null&&session.getAttribute("u")!=null){username=(String) session.getAttribute("u");}return "username:"+username;}

session是存放在服务器中的,不方便演示,所以我们先存储session,在读取

 

2.2简洁版本【使用注解@SessionAttribute】

    @RequestMapping("/m15")public String m15(@SessionAttribute(value = "u",required = false)String username){//获取session简洁版【1】return "username:"+username;}

 

2.3简洁版本【使用HttpSession】

    @RequestMapping("/m16")public String m16(HttpSession session){//获取session简洁版【2】//通过Spring MVC内置队象HttpSession来获取String username=(String)session.getAttribute("u");return "username:"+username;}

3、获取header

3.1传统版本【使用HttpServletRequest】

    @RequestMapping("/m17")public String m17(HttpServletRequest request){//传统获取headerString userAgent=request.getHeader("User-Agent");return "userAgent:"+userAgent;}

3.2简洁版本【使用注解@RequestHeader】

    @RequestMapping("/m18")public String m18(@RequestHeader("User-Agent")String userAgent){//简洁版获取headerreturn "userAgent:"+userAgent;}

最后:无论使用传统的HttpServletRequest获取,还是使用注解获取,大差不差,关键要懂其原理,当然更推荐使用注解的方式,因为更方便(哈哈哈哈哈哈代码少!!!)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/51851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux主机网络参数的设置—IP地址的作用和类型

网络参数管理 一.网络参数 主机名,IP地址,子网掩码,网关,DNS服务器地址 1.配置主机名 hostname命令来查看当前系统的主机名, hosnamectl set-hostname 修改centos7的主机名, 建议以FQDN的&#xff…

惠中科技光伏清洗剂:点亮绿色能源未来

在当今全球追求可持续发展的时代,光伏产业作为清洁能源的重要代表,正发挥着日益关键的作用。而在光伏产业的高效运行中,惠中科技的光伏清洗剂犹如一颗璀璨的明珠,为光伏板的清洁与维护贡献着卓越力量。 一、光伏产业的挑战与需求…

STM32嵌入式面试知识点总结

一、STM32F1和F4的区别? 解答: 参看:STM32开发 – STM32初识内核不同:F1是Cortex-M3内核,F4是Cortex-M4内核;主频不同:F1主频72MHz,F4主频168MHz;浮点运算:…

【C++ Primer Plus习题】8.3

问题: 解答: #include <iostream> #include <string> #include <cctype> using namespace std;void function(string& str) {for (int i 0; i < str.size(); i){str[i]toupper(str[i]);} }int main() {string str;while (true){cout << "…

od机试题目

od试题 日志采集TLV 日志采集 思路&#xff1a; 处理输入&#xff1a; Scanner 拿到整个输入 放入string[] 按照" "分隔 调用Integer.parseInt 将string转int类型 解题&#xff1a; 用一个变量count记录当前日志数量&#xff0c;初始为输入的第一个参数 用一个max变…

Java中类的成员介绍

我的后端学习大纲 我的Java学习大纲 4.类的成员&#xff1a; 3.1.类的成员 -> 属性介绍&#xff08;成员变量&#xff09;&#xff1a; a.语法格式&#xff1a; 1.修饰符 数据类型 属性名 初始化值 ;2.说明1: 修饰符 常用的权限修饰符有&#xff1a;private、缺省、prot…

网络原理 - 初识

文章目录 局域网(LAN)广域网(WAN)网络设备IP地址格式 端口号格式 认识网络协议协议分层 OSI七层模型(只是理论,没有实际运用)TCP/IP五层&#xff08;或四层&#xff09;模型网络设备所在分层 封装和分用 计算机之间通过网络来传输数据&#xff0c;也称为网络通信。 根据网络互连…

linux系统编程:数据库

1. 数组、链表、变量-----》内存&#xff1a;程序运行结束、掉电数据丢失 文件----------------------》硬盘&#xff1a;程序运行结束、掉电数据不丢失 数据库&#xff1a; 专业存储数据、大量数据-----》硬盘 sqlite相关的命令 .tables 查看…

库克库伯防爆电容器会起火吗

库克库伯&#xff08;Cooke Colb&#xff09;防爆电容器设计用于在具有爆炸性气体或粉尘的危险环境中安全运行。尽管这些防爆电容器经过严格的设计和测试&#xff0c;能够保障不会出现爆炸现象&#xff0c;以确保在恶劣环境中运行时的安全性&#xff0c;但在某些极端情况下&…

[数据集][目标检测]电力场景输电线均压环歪斜检测数据集VOC+YOLO格式303张2类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;303 标注数量(xml文件个数)&#xff1a;303 标注数量(txt文件个数)&#xff1a;303 标注类别…

【网络安全】Instagram 和 Meta 2FA 绕过漏洞

未经许可,不得转载。 文章目录 漏洞概述技术细节Meta 2FA 绕过步骤Instagram 2FA 绕过步骤总结漏洞概述 该漏洞允许攻击者在具有受害者Facabook账户权限的情况下,绕过 Meta 的双重身份验证 (2FA) 机制,实现账户接管;并且也能够绕过 Instagram 的双重身份验证 (2FA) 机制,…

【GeoScenePro】Generic Server Error

错误 解决方案 在portal中进行知识图谱许可授权

国密起步5:GmSSL3交叉编译arm64

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 之前已经建立好了交叉编译环境…

视频集中存储智能边缘计算网关软硬一体机智能边缘计算网关应用场景

在信息化飞速发展的今天&#xff0c;数据处理的速度和效率直接影响到各行各业的运作和发展。传统的云计算模式虽然强大&#xff0c;但在面对实时性和带宽要求越来越高的应用场景时&#xff0c;往往显得力不从心。此时&#xff0c;智能边缘计算网关的出现&#xff0c;为我们带来…

sqli-labs靶场(56-60)

56关 ?id-1)union select 1,2,database()-- 看数据库 ?id-1) union select 1,group_concat(table_name),3 from information_schema.tables where table_schemadatabase()-- 看表 ?id-1) union select 1,group_concat(column_name),3 from information_schema.columns wh…

深入探索MySQL数据库结构设计:实战案例解析,打造高效、可扩展的数据存储方案

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 前言&#xff1a;…

noge-gyp构建项目踩坑记录

开发环境 系统: win11 node: 19.7.0 npm: 8.3.2 node-gyp: 10.0.2可以不使用windows-build-tools来安装构建工具,手动进行安装 我这边用windows-build-tools安装时候会提示 process.env only accepts a configurable, writable, and enumerable data descriptor. 查了资料后…

转换视频格式轻松搞定!3个小窍门助你轻松将mxf格式转mp4

你是否因为格式转换而烦恼&#xff1f;你是否经历过这样的情况&#xff1a;你想要在别的设备或平台上播放心仪的视频&#xff0c;但是你的视频文件是xmf格式的&#xff0c;很多设备都不支持这个格式&#xff0c;导致视频无法播放。现在&#xff0c;你需要把mxf格式转mp4格式。你…

【时间盒子】-【2.准备】HarmonyOS 开发前需要准备什么?

零基础新手或转行进入鸿蒙生态应用的开发者&#xff0c;请提前准备以下内容&#xff1a; 一、注册华为帐号 此帐号在华为官方各平台通用&#xff0c;比如&#xff1a;华为手机、华为商城、华为云、华为开发者联盟等等。 https://id1.cloud.huawei.com/CAS/portal/userRegist…

如何在Windows和Mac上免费提取RAR文件?这里有方法

序言 你有没有下载过一个文件,却发现它有一个奇怪的.rar文件扩展名?RAR是一种压缩文件格式,与ZIP文件非常相似,在本文中,我们将向你展示如何在Windows或macOS上打开RAR文件。 如何在Windows 11上打开RAR文件 Windows 11在2023年增加了对RAR文件的原生支持。从那时起,你…