Cookie属性

了解这几个属性之后,就知道如何进行Cookie的操作了。

name

Cookie的名称。

value

Cookie的值。

maxAge

Cookie的失效时间,有以下几种值,默认为-1

值 | 说明 ---|--- 负数 | 浏览器关闭后cookie就失效 0 | 马上清除cookie 正数 | 设置过期时间,单位:秒

path

Cookie的有效路径,/表示这个路径即该工程下都可以访问该cookie 如果不设置路径,那么只有设置该cookie路径及其子路径可以访问。

获取所有Cookie

public static Cookie[] getCookies(HttpServletRequest request) {

return request.getCookies();

}

获取cookie很简单,直接从request中获取即可。

根据名称获取指定Cookie

public static Cookie getCookieByName(HttpServletRequest request, String name) {

if (StringUtils.isBlank(name)) {

return null;

}

Cookie[] cookies = getCookies(request);

if (null != cookies) {

for (Cookie cookie : cookies) {

if (name.equals(cookie.getName())) {

return cookie;

}

}

}

return null;

}

从所有cookie中循环判断进行获取指定cookie。

添加Cookie

public static boolean addCookie(HttpServletResponse response, String name, String value,

int maxAge) {

if (StringUtils.isBlank(name) || StringUtils.isBlank(value)) {

return false;

}

Cookie cookie = new Cookie(name.trim(), value.trim());

if (maxAge <= 0) {

maxAge = Integer.MAX_VALUE;

}

cookie.setMaxAge(maxAge);

cookie.setPath("/");

response.addCookie(cookie);

return true;

}

这个添加很简单。

删除Cookie

public static boolean removeCookie(HttpServletRequest request, HttpServletResponse response,

String name) {

if (StringUtils.isBlank(name)) {

return false;

}

Cookie[] cookies = getCookies(request);

if (null != cookies) {

for (Cookie cookie : cookies) {

if (name.equals(cookie.getName())) {

cookie.setValue(null);

cookie.setMaxAge(0);

cookie.setPath("/");

response.addCookie(cookie);

return true;

}

}

}

return false;

}

删除cookie,把value设置为null,把max-age设置为0就行了。

注意

编辑操作和删除操作一样,但是需要注意的是修改、删除Cookie时,除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败。

更多Java好文请关注Java技术栈微信公众号,在公众号后台回复关键字:java,以下仅为部分预览。出场率比较高的一道多线程安全面试题

Java类初始化顺序,大神3个示例带你躺坑

switch case 支持的 6 种数据类型!

面试常考:Synchronized 有几种用法?

Hashtable 为什么不叫 HashTable?

本文原创首发于微信公众号:Java技术栈(id:javastack),转载请原样保留本信息。

java修改cookie的值_Java管理Cookie增删改查操作。相关推荐

  1. (Java/JDBC)对MySQL数据库实现基础的增删改查操作(含源码)

    文章目录 前言 注(常用PreparedStatement方法) 源码展示 前言 实现数据库连接 → Java连接MySQL数据库(含源码) (实现简单的增删查改更改正确的SQL语句即可) 增:ins ...

  2. mysql用户权限管理和增删改查操作

    mysql使用上一篇的安装的mysql.启动mysql服务后直接就能连到mysql服务器上. # mysql Welcome to the MySQL monitor.    Commands end ...

  3. java jdom进行xml的增删改差_java使用DOM对XML文档进行增删改查操作实例代码

    本文研究的主要是java使用DOM对XML文档进行增删改查操作的相关代码,具体实例如下所示. 源代码: package com.zc.homeWork18; import java.io.File; ...

  4. Java连接sqlserver数据库,并进行增删改查操作

    用编程语言连接数据库是程序员必备的技能,今天我们就来学习一下如何通过Java来连接sqlserver数据库,并实现增删改查操作. 需要用到的工具: Myeclipse,sqlserver数据库,Mic ...

  5. 基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作!

    什么是Cookie? Cookie是由W3C组织提出,最早由NetScape社区发展的一种机制. Cookie是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个co ...

  6. mysql修改字段默认值_MySQL增删改查操作

    增删改查操作 查询表中的所有的记录:select from 表名(xs) 创建数据库:create database if not exists xsgl; 8.2创建表:cerate table i ...

  7. Java+MyEclipse+Tomcat (六)详解Servlet和DAO数据库增删改查操作

    此篇文章主要讲述DAO.Java Bean和Servlet实现操作数据库,把链接数据库.数据库操作.前端界面显示分模块化实现.其中包括数据的CRUD增删改查操作,并通过一个常用的JSP网站前端模板界面 ...

  8. 论坛模块_版块管理_增删改查实现上下移动

    论坛模块_版块管理1_增删改查 设计实体Forum.java public class Forum {private Long id;private String name;private Strin ...

  9. MySQL学习总结(2) --- 数据表管理(增删改查)、使用DQL查询数据(SELECT)

    MySQL学习总结(2) - 数据表管理(增删改查).使用DQL查询数据(SELECT) 1. 数据管理(增删改查) 数据库数据管理方法: a.通过SQLyog等管理工具管理数据库数据 b. 通过DM ...

最新文章

  1. Controller和RestController的区别
  2. php 信号量 关闭,php 信号量
  3. 人工智障学习笔记——深度学习(4)生成对抗网络
  4. 漫游Kafka设计篇之Producer和Consumer(4)
  5. matlab中用于离散系统求解的命令,MATLAB求解规划问题(线性规划, 整数规划, 非线性规划)...
  6. Matlab字符串转换及数值格式转换
  7. CAD如何使用全屏显示
  8. shell 脚本返回上级目录_cmd返回上级目录
  9. 磁碟机病毒专杀3月20日更新到6.4版 (另附上多种专杀工具)
  10. 完全没有建站经验的人,怎么自己做网站
  11. Box plot (箱形图) 中 quartile (四分位数)原理,及python_matplotlib中Q1和Q3定义的不同
  12. 【论文阅读】Locally Adaptive Color Correction for Underwater Image Dehazing and Matching
  13. 数字化发展正在影响服装企业
  14. 小米手机深陷“返修门” 售后成软肋
  15. 使用DHT11和51单片机进行温湿度的读取(保证好用版本)
  16. 最简单的 Git 入门教程
  17. 黑马Redis学习——实战篇(4)
  18. 安装Linux18.04显卡驱动以及docker gui连接
  19. 蹭WiFi掉黑客陷进怎么破
  20. Dropbox 授权以及文件下载操作

热门文章

  1. matlab 传递函数求截止频率,高分求解RC滤波电路的传递函数和截止频率
  2. python模块安装
  3. 使用Lua 局部变量来优化性能,同一时候比較局部变量和全局变量
  4. Java中使用poi导入、导出Excel
  5. Json.NET特殊处理64位长整型数据
  6. 事半功倍系列之javascript (转载)
  7. PyCharm中文指南2.0
  8. CSDN博客利用HTML标签制作美观表格
  9. Win11右键菜单切回经典模式
  10. Ubuntu18.04之apt-file用法