前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Cookie和Session

Cookie和Session

作者头像
摸鱼的G
发布于 2023-02-22 01:53:30
发布于 2023-02-22 01:53:30
47400
代码可运行
举报
文章被收录于专栏:火属性小虫火属性小虫
运行总次数:0
代码可运行
Cookie和Session

本篇记录Spring工程对Cookie和Session的操作

Cookie操作

Cookie读取

总结:为control类的方法增加一个HttpServletRequest参数,通过request.getCookies()取得cookie 数组。然后再循环遍历数组即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;

@RequestMapping("/songlist")
public Map index(HttpServletRequest request) {
  Map returnData = new HashMap();
  returnData.put("result", "this is song list");
  returnData.put("author", songAuthor);

  Cookie[] cookies = request.getCookies();
  returnData.put("cookies", cookies);

  return returnData;
}

使用注解读取Cookie

control类的方法增加一个@CookieValue("xxxx") String xxxx参数即可,注意使用时要填入 正确的cookie 名字

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.springframework.web.bind.annotation.CookieValue;

@RequestMapping("/songlist")
public Map index(@CookieValue("JSESSIONID") String jSessionId) {//这里读取了名为“JSESSIONID”的Cookie,并将其值传入了jSessionId字符串中
  Map returnData = new HashMap();
  returnData.put("result", "this is song list");
  returnData.put("author", songAuthor);
  returnData.put("JSESSIONID", jSessionId);

  return returnData;
}

添加Cookie

总结:为control类的方法增加一个HttpServletRequest参数,通过request.addCookie()添加cookie对象即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletResponse;

@RequestMapping("/songlist")
public Map index(HttpServletResponse response) {
  Map returnData = new HashMap();
  returnData.put("result", "this is song list");
  returnData.put("name", songName);

  //第一个参数是cookie的名称,第二个参数是cookie的值
  Cookie cookie = new Cookie("sessionId","CookieTestInfo");
  // 设置的是 cookie 的域名,就是会在哪个域名下生成 cookie 值
  cookie.setDomain("youkeda.com");
  // 是 cookie 的路径,一般就是写到 / ,不会写其他路径的
  cookie.setPath("/");
  // 设置cookie 的最大存活时间,-1 代表随浏览器的有效期,也就是浏览器关闭掉,这个 cookie 就失效了。
  cookie.setMaxAge(-1);
  // 设置是否只能服务器修改,浏览器端不能修改,安全有保障
  cookie.setHttpOnly(false);
  response.addCookie(cookie);

  returnData.put("message", "add cookie successfule");
  return returnData;
}

Session操作

session是用于客户端存放用户id以及登录状态等重要信息的方法,cookie作为session id的载体与客户端通讯,如上面名为JSESSIONID的cookie,是专门用来记录用户session的。

读取Session

cookie相似,从HttpServiceRequest对象中获取HttpSession对象,使用的语句是requset.getSession()

不同的是,返回结果不是数组,而是对象,在attribute属性中用key->value的形式储存多个数据。

如储存登录信息的数据key是userLoginInfo那么语句就是session.getAttribute("userLoginInfo")

由于登录信息实例对象要在网络上传输,就必须实现序列化接口Serializable,否则会报错。(即创建一个getAttribute所返回的类且这个类连接着接口)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.io.Serializable;

public class UserLoginInfo implements Serializable {
  private String userId;
  private String userName;
}

完整操作大致如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@RequestMapping("/songlist")
public Map index(HttpServletRequest request, HttpServletResponse response) {
  Map returnData = new HashMap();
  returnData.put("result", "this is song list");

  // 取得 HttpSession 对象
  HttpSession session = request.getSession();
  // 读取登录信息
  UserLoginInfo userLoginInfo = (UserLoginInfo)session.getAttribute("userLoginInfo");
  if (userLoginInfo == null) {
    // 未登录
    returnData.put("loginInfo", "not login");
  } else {
    // 已登录
    returnData.put("loginInfo", "already login");
  }

  return returnData;
}

写入Session

getAttribute()对应,写入session使用方法 setAttribute()(使用这个方法来告诉服务器登录状态)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

@RequestMapping("/loginmock")
public Map loginMock(HttpServletRequest request, HttpServletResponse response) {
  Map returnData = new HashMap();

  // 假设对比用户名和密码成功
  // 仅演示的登录信息对象
  UserLoginInfo userLoginInfo = new UserLoginInfo();
  userLoginInfo.setUserId("12334445576788");
  userLoginInfo.setUserName("ZhangSan");
  // 取得 HttpSession 对象
  HttpSession session = request.getSession();
  // 写入登录信息
  session.setAttribute("userLoginInfo", userLoginInfo);
  returnData.put("message", "login successfule");

  return returnData;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
CVPR 2023 | 使用混合 Transformer-CNN 架构学习图像压缩
CNN-based图像压缩方法能较好地提取局部信息,Transformer-based图像压缩方法能较好地提取全局信息,于是想将这两者的优势相结合。
用户1324186
2024/04/12
1.5K0
CVPR 2023 | 使用混合 Transformer-CNN 架构学习图像压缩
支持码控的学习型图像压缩
图像压缩是一种广泛使用的技术。在过去的几十年里,传统的图像压缩方法发挥了重要作用。JPEG 是一种基本的图像压缩方法,自20世纪90年代以来一直被使用,并且仍然是主流的压缩格式。JPEG 中应用了 DCT 变换和霍夫曼熵编码。后来,WEBP 、BPG 和 VVC 涉及更复杂的工具来增强速率失真性能。尽管这些强大的工具极大地提高了图像压缩性能,但手动设计的搜索空间和变换仍然可能限制性能。与传统的图像压缩方法相比,LIC是一种数据驱动的方法,不需要手动设计特定的规则。
用户1324186
2023/09/09
6460
支持码控的学习型图像压缩
【论文复现】图像压缩算法
首先,这篇文章的出发点就是图像压缩最本源的目的,就是探索如何在相同的码率下获得更高质量的重建图像,或者说在得到的重建图像质量一样的情况下,如何进一步节省码率。
Eternity._
2024/12/28
3250
【论文复现】图像压缩算法
STF-顶会图像压缩方法
随着视觉应用的日益增多,图像压缩已经成为图像处理领域的一个重要研究课题。传统的图像压缩方法,如JPEG、JPEG2000等,主要依赖于手工设计的规则,虽然这些方法在一定程度上解决了图像存储和传输的问题,但在处理复杂纹理和细节方面存在局限性。近年来,基于卷积神经网络(CNN)的学习型图像压缩方法展示了优越的率失真性能。然而,CNN在捕捉局部冗余和非重复纹理方面仍存在不足,这限制了图像重建质量的进一步提升。
Srlua
2024/12/20
1860
STF-顶会图像压缩方法
针对 YUV420 颜色空间的深度图像压缩研究
目前,大多数深度图像压缩方法被设计用来压缩 RGB 颜色空间的图像。然而传统的视频编码标准,则主要设计来压缩 YUV420 色彩空间的图像。在这个研究中,作者首先研究如何调整 RGB 图像的深度压缩框架,以压缩 YUV420 图像。然后研究了调整 YUV 通道的训练失真权重时对编码性能的影响,并将实验结果与 HEVC 和 VVC AI 配置进行比较。提出的方法适用于图像压缩和视频压缩的帧内编码。
用户1324186
2022/02/18
1.4K0
针对 YUV420 颜色空间的深度图像压缩研究
CVPR 2019 | 图鸭科技 CLIC 图像压缩挑战赛冠军方案全解读
AI 科技评论按:在 CVPR 2019 CLIC 图像压缩挑战赛中,图鸭科技所提出的算法 TucodecSSIM 夺得了 MS-SSIM 和 MOS 两项指标的冠军,算法 TucodecPSNR 夺得了 PSNR 指标的冠军,算法 TucodecPSNR40dB 则夺得高码点图像压缩 Transparent Track 的冠军。以下为图鸭科技提供的技术解读。
AI科技评论
2019/07/05
8870
CVPR 2019 | 图鸭科技 CLIC 图像压缩挑战赛冠军方案全解读
C3: 图像与视频通用的高性能低复杂度神经压缩器
继承了 C2 的改进,使用线性层和卷积层的混合。升采样模块则使用 C1 中的双线性插值,升采样模块不含可学习参数。
用户1324186
2024/01/04
6790
C3: 图像与视频通用的高性能低复杂度神经压缩器
NeurIPS 2023 | 在没有自回归模型的情况下实现高效图像压缩
目前的SOTA LIC方法采用变换编码策略进行有损图像压缩,具体地说,首先将图像像素映射到一个量化的潜在空间中,然后使用熵编码方法进行无损压缩。这种方法的一个关键部分是基于超先验的熵模型,用于估计潜在变量的联合概率分布,其中存在一个基本假设:潜在变量元素在空间位置上的概率是相互独立的。然而,这一假设与潜在空间高度相关的实际特性相矛盾,导致实际分布与假设分布之间存在差异。
用户1324186
2023/12/28
7840
NeurIPS 2023 | 在没有自回归模型的情况下实现高效图像压缩
ICCV2023 | 将基于 Transformer 的图像压缩从人类感知转移到机器感知
一般来说,大多数学习的图像压缩系统主要是为了人类感知设计的。最近,由于针对高级识别任务跨设备传输视觉数据的需求不断增长,用于机器感知的图像编码成为一个活跃的研究领域。如果为用于不同机器感知任务的图像编码设计一个通用的编码器,则很难实现最近的速率-失真权衡。但如果为每一个任务都定制编码器的代价远远超过了可承受范围。
用户1324186
2023/11/27
1K0
ICCV2023 | 将基于 Transformer 的图像压缩从人类感知转移到机器感知
CNN再助力!CoaT:Co-Scale卷积-注意力图像Transformer
Co-Scale Conv-Attentional Image Transformers
Amusi
2021/04/23
1.3K0
CNN再助力!CoaT:Co-Scale卷积-注意力图像Transformer
TIP 2023 | 通过高斯-拉普拉斯-逻辑混合模型和串联残差模块学习的图像压缩
图像压缩是许多应用中的重要步骤。经典方法,例如JPEG、JPEG 2000和BPG(H.265/HEVC的帧内编码),主要使用线性变换、量化和熵编码等技术来去除减少输入的冗余并实现更好的率失真(R-D)性能,如图1所示。最近,人们研究了基于深度学习的方法,其中根据神经网络的特性重新设计了三个主要组件。该方法在 PSNR 和 MS-SSIM 指标方面逐渐优于传统方法,并显示出巨大的潜力。
用户1324186
2024/01/17
4530
TIP 2023 | 通过高斯-拉普拉斯-逻辑混合模型和串联残差模块学习的图像压缩
超分辨率新突破!HAAT混合注意力聚合Transformer,跨通道建模性能飙升登顶SOTA !
单图像超分辨率(SISR)旨在从低分辨率图像中重构高质量图像。随着其广泛应用,高效超分辨率算法的研发成为计算机视觉领域的一个关键研究领域。最近的研究将自注意力机制集成到计算机视觉挑战中 [1, 2]。
未来先知
2025/02/20
3500
超分辨率新突破!HAAT混合注意力聚合Transformer,跨通道建模性能飙升登顶SOTA !
ICCV 2023 | COMPASS:任意尺度空间可伸缩性的深度图像压缩
在多媒体系统中,不同的终端设备需要不同分辨率大小和不同质量的图像,但大多数现有的基于神经网络的图像压缩方法必须将同一图像的不同版本单独压缩为多个比特流,从而导致低编码效率。为了解决这个问题,有一些关于可缩放图像压缩的研究,其中图像的各种版本以分层方式的编码到单个比特流中。每个层负责对图像的一个对应版本进行编解码,并且通过不同的预测方法来减少相邻层之间的冗余。
用户1324186
2023/11/07
9770
ICCV 2023 | COMPASS:任意尺度空间可伸缩性的深度图像压缩
YoloV8改进策略:注意力改进|Neck层改进|SCSA,探索空间与通道注意力之间的协同效应|即插即用
https://arxiv.org/pdf/2407.05128 通道注意力和空间注意力分别为各种下游视觉任务在提取特征依赖性和空间结构关系方面带来了显著改进。通道注意力和空间注意力的结合使用被广泛认为有利于进一步提升性能;然而,通道注意力和空间注意力之间的协同作用,尤其是在空间引导和缓解语义差异方面,尚未得到深入研究。这促使我们提出了一种新的空间与通道协同注意模块(SCSA),该模块涉及我们在多个语义层面上对空间注意力和通道注意力之间协同关系的研究。我们的SCSA由两部分组成:可共享多语义空间注意力(SMSA)和渐进通道自注意力(PCSA)。SMSA整合了多语义信息,并利用渐进压缩策略将判别性空间先验注入到PCSA的通道自注意力中,有效引导通道再校准。此外,PCSA中基于通道单头自注意力机制的稳健特征交互进一步缓解了SMSA中不同子特征之间多语义信息的差异。我们在七个基准数据集上进行了大量实验,包括在ImageNet-1K上的分类、在MSCOCO上的目标检测、在ADE20K上的分割以及四个其他复杂场景检测数据集。实验结果表明,我们提出的SCSA不仅超越了当前的即插即用型最先进注意力方法,而且在各种任务场景中展现出增强的泛化能力。代码和模型可在以下网址获取:https://github.com/HZAIZJNU/SCSA。
AI浩
2025/01/02
7960
YoloV8改进策略:注意力改进|Neck层改进|SCSA,探索空间与通道注意力之间的协同效应|即插即用
AAAI 2024 | 利用通道模态冗余实现端到端 RGB-D 图像压缩
RGB-D 图像是一种重要的 3D 数据格式。它已被广泛用于 3D 场景重建、突出目标检测、机器人与自主导航、医学影像与健康监测、环境监测等领域。与 RGB 图像不同,深度图像包含有关从视点到场景对象表面的距离的信息,该视点提供了 3D 场景之间的深度信息。因此,RGB-D联合分析方法在计算机视觉任务中很受欢迎。然而,这些方法使用额外的模态,这将带来多余的存储和传输成本。因此,设计一个高效的RGB-D图像压缩方法是一项重要且具有挑战性的工作。
用户1324186
2024/03/26
7120
AAAI 2024 | 利用通道模态冗余实现端到端 RGB-D 图像压缩
用于机器视觉任务的图像压缩前处理
最近,越来越多的图像被压缩并发送到后端设备进行机器视觉分析任务(例如目标检测),而不仅仅是供人类观看。然而,大多数传统的或可学习的图像编解码器都是最小化人类视觉系统的失真,而没有考虑到机器视觉系统的需求。在这项工作中,我们提出了一种用于机器视觉任务的图像压缩前处理方法。我们的框架不依赖于可学习的图像编解码器,而是可用于传统的非可微分编解码器,这意味着它与编码标准兼容,并且可以轻松部署在实际应用中。具体而言,我们在编码器之前增加一个神经网络前处理模块,用于保留对下游任务有用的语义信息并抑制无关信息以节省比特率。此外,我们的神经网络前处理模块是量化自适应的,可以在不同的压缩比下使用。更重要的是,为了联合优化前处理模块和下游机器视觉任务,我们在反向传播阶段引入了传统非可微分编解码器的代理网络。我们在几个具有不同骨干网络的代表性下游任务上进行了广泛的实验。实验结果表明,我们的方法通过节省约20%的比特率,在编码比特率和下游机器视觉任务性能之间取得了更好的权衡。
用户1324186
2023/09/09
6380
用于机器视觉任务的图像压缩前处理
ICML 2023 Workshop | 使用量化整流器的神经图像压缩
量化通过将连续值映射到用于熵编码的有限离散值集来离散图像特征以压缩图像。虽然目前基于神经网络的图像压缩采用的量化方法解决了训练测试不匹配的问题,但量化对潜在特征的随机影响仍未解决。量化将连续值统一映射到单个离散值,根据特征可变性引入不同程度的噪声。例如,从
用户1324186
2023/09/27
3530
ICML 2023 Workshop | 使用量化整流器的神经图像压缩
CVPR2023 | 使用条件生成器进行多重真实感图像压缩
,可以获得高感知质量的解码图像。这可以使得在低码率条件下解码的图片能使人的感知更愉悦,同时生成器也不会影响图像的真实性。通过本文的方法,"失真-感知" 得到权衡,在高感知质量条件下有更低的图像损失,在低图像损失下有更好的感知质量。
用户1324186
2023/11/02
8240
CVPR2023 | 使用条件生成器进行多重真实感图像压缩
ICCV 2023 | AdaNIC:通过动态变换路由实现实用的神经图像压缩
自动编码器的特定变体,即压缩自动编码器(CAE),已成为神经图像压缩中流行的架构选择。采用CAE学习图像信号的紧凑非线性表示取得了巨大成功,与现有的编解码器相比,产生了相当甚至更优的率失真性能。之前的研究工作已经证明,CAE的规模与图像质量或比特率高度相关。在这种情况下,经过充分研究的信道修剪方法可能适合复杂性缓解的需要。当使用信道修剪方法去除部分信道时,过度的信道修剪可能导致率失真性能严重下降。因此,静态的信道修剪方式可能不适合进一步的率失真复杂度优化。具体结果可见图1,对于三张不同的输入图像,直接将潜在变量的通道数由192裁剪为176。深色圆点代表了原始的率失真表现,浅色圆点代表裁剪后的率失真表现。可以看到,三张图像表现出了不同的下降趋势,但复杂度的降低是一致的。更进一步的,箭头代表不同图像块的率失真表现,可以发现,同一图像的不同图像块也会有不同的率失真下降趋势。因此,这种通道裁剪方法需要更细粒度的划分,而不仅仅是作用在整张图像上。此外,作者希望研究一种动态路由解决方案,以探索率失真和复杂度的联合优化。因为,在运行时使用内容自适应优化能实现最大的系统吞吐量。由于动态路由的作用空间被设计为样本或区域自适应,因此它可以无缝集成到其他可行的解决方案中,以加速神经非线性变换,从而产生静态轻量级模型,并通过联合优化提高其性能。这种动态路由方法在运行时做出编码决策,这类似于现代图像/视频编码标准通常采用的传统RDO过程或快速算法。这种运行时权衡可以带来更大的灵活性,从而通过定制行为实现更好的速率失真或复杂性权衡。
用户1324186
2024/01/11
4000
ICCV 2023 | AdaNIC:通过动态变换路由实现实用的神经图像压缩
IEEE Transactions 2022 | 针对人眼感知和机器任务的可扩展图像编码
研究问题:设计分层编解码器,将隐空间的不同部分对应不同任务(图像重建/目标检测/分割)。
用户1324186
2024/01/11
3730
IEEE Transactions 2022 | 针对人眼感知和机器任务的可扩展图像编码
推荐阅读
相关推荐
CVPR 2023 | 使用混合 Transformer-CNN 架构学习图像压缩
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档