/**
* 读取所有cookie
* 注意二、从客户端读取Cookie时,包括maxAge在内的其他属性都是不可读的,也不会被提交。浏览器提交Cookie时只会提交name与value属性。maxAge属性只被浏览器用来判断Cookie是否过期
* @param request
* @param response
*/
@RequestMapping("/showCookies")
public void showCookies(HttpServletRequest request,HttpServletResponse response ){
Cookie[] cookies = request.getCookies();//这样便可以获取一个cookie数组
if(null==cookies) {
System.out.println("没有cookie=========");
}else{
for(Cookie cookie : cookies){
System.out.println("name:"+cookie.getName()+",value:"+ cookie.getValue());
}
} } /**
* 添加cookie
* @param response
* @param name
* @param value
*/
@RequestMapping("/addCookie")
public void addCookie(HttpServletResponse response,String name,String value){
Cookie cookie = newCookie(name.trim(), value.trim());
cookie.setMaxAge(30* 60);// 设置为30min
cookie.setPath("/");
System.out.println("已添加===============");
response.addCookie(cookie);
} /**
* 修改cookie
* @param request
* @param response
* @param name
* @param value
* 注意一、修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败。
*/
@RequestMapping("/editCookie")
public void editCookie(HttpServletRequest request,HttpServletResponse response,String name,String value){
Cookie[] cookies = request.getCookies();
if(null==cookies) {
System.out.println("没有cookie==============");
}else{
for(Cookie cookie : cookies){
if(cookie.getName().equals(name)){
System.out.println("原值为:"+cookie.getValue());
cookie.setValue(value);
cookie.setPath("/");
cookie.setMaxAge(30* 60);// 设置为30min
System.out.println("被修改的cookie名字为:"+cookie.getName()+",新值为:"+cookie.getValue());
response.addCookie(cookie);
break;
}
}
} } /**
* 删除cookie
* @param request
* @param response
* @param name
*/
@RequestMapping("/delCookie")
public void delCookie(HttpServletRequest request,HttpServletResponse response,String name){
Cookie[] cookies = request.getCookies();
if(null==cookies) {
System.out.println("没有cookie==============");
}else{
for(Cookie cookie : cookies){
if(cookie.getName().equals(name)){
cookie.setValue(null);
cookie.setMaxAge(0);// 立即销毁cookie
cookie.setPath("/");
System.out.println("被删除的cookie名字为:"+cookie.getName());
response.addCookie(cookie);
break;
}
}
}
} /**
* 根据名字获取cookie
* @param request
* @param name cookie名字
* @return
*/
public Cookie getCookieByName(HttpServletRequest request,String name){
Map<String,Cookie> cookieMap = ReadCookieMap(request);
if(cookieMap.containsKey(name)){
Cookie cookie = (Cookie)cookieMap.get(name);
returncookie;
}else{
returnnull;
}
} 通常开发时先用以下的代码将获取的cookie进行封装 /**
* 将cookie封装到Map里面
* @param request
* @return
*/
private Map<String,Cookie> ReadCookieMap(HttpServletRequest request){
Map<String,Cookie> cookieMap = newHashMap<String,Cookie>();
Cookie[] cookies = request.getCookies();
if(null!=cookies){
for(Cookie cookie : cookies){
cookieMap.put(cookie.getName(), cookie);
}
}
returncookieMap;
}

自定义、操作cookie的更多相关文章

  1. 自定义的操作Cookie的工具类

    可以在SpringMVC等环境中使用的操作Cookie的工具类 package utils; import java.io.UnsupportedEncodingException; import j ...

  2. Asp.net操作cookie大全

    实例代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 3 ...

  3. django中操作cookie与session

    cookie 什么是Cookie Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息. Cookie的 ...

  4. selenium常用操作,查找元素,操作Cookie,获取截图,获取窗口信息,切换,执行js代码

    目录: 1. 常用操作 2. 查找元素 3. 操作Cookie 4. 获取截图 5. 获取窗口信息 6. 切换 7. 执行JS代码 简介 selenium.webdriver.remote.webdr ...

  5. Selenium(十二):操作Cookie、调用JavaScript、HTML5的视频播放

    1. 操作Cookie 有时候我们想要验证浏览器中cookie是否正确,因为基于真实cookie的测试是无法通过白盒和集成测试的.WebDriver提供了操作Cookie的相关方法,可以读取.添加和删 ...

  6. javaScript操作cookie出现同名key

    引文: 网上查找js操作cookie文章发现百度千篇一律全是同样的代码,使用过程中发现一个bug,设置cookie导致出现多个同名key的cookie,官网cookie文档内未提及,下文将标出问题点, ...

  7. JavaScript 操作 Cookie

    转自作者:聂微东出处:http://www.cnblogs.com/Darren_code/      什么是 Cookie “cookie 是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器 ...

  8. js简单操作Cookie

    贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...

  9. 关于在SharePoint 2013(2010)中Javascript如何实现批量批准的自定义操作功能?

    1.概述: SharePoint 2013(包括SharePoint 2010)提供了很方便的,多选的界面,但是很多操作还是不能批量进行,比如:批准的功能.如果您要解决方案不关心代码,那么请直接联系作 ...

  10. Jquery操作cookie,实现简单的记住用户名的操作

     一.jquery.cookie.js介绍  jquery.cookie.js是一个基于jquery的插件,一个轻量级的cookie 插件,可以读取.写入.删除 cookie. jquery.cook ...

随机推荐

  1. Leetcode 8. String to Integer (atoi)(模拟题,水)

    8. String to Integer (atoi) Medium Implement atoi which converts a string to an integer. The functio ...

  2. 特征提取算法(4)——LoG特征提取算法

    目录 1.介绍 2.LoG原理 3.数学原理 4.模板性质 1.介绍 LoG(DoG是一阶边缘提取)是二阶拉普拉斯-高斯边缘提取算法,先高斯滤波然后拉普拉斯边缘提取. Laplace算子对通过图像进行 ...

  3. 使用M/Monit进行可视化集中进程管理

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://heqin.blog.51cto.com/8931355/1863924 一:前言 ...

  4. 170830-关于JdbcTemplate的知识点

    1.Spring提供的一个操作数据库的技术JdbcTemplate,是对Jdbc的封装.语法风格非常接近DBUtils. JdbcTemplate可以直接操作数据库,加快效率,而且学这个JdbcTem ...

  5. maven入门问题解决

    记录入门使用maven的问题和解决方法: 一.用mvn clean compile编译报错/ 或者在IDE中编译时,Problem视图显示错误:无法从maven服务器或者私有服务器或者某个网站中中下载 ...

  6. php正则匹配汉字提取其它信息剔除和验证邮箱

    正则匹配汉字提取其它信息剔除demo <?php //提取字符串中的汉字其余信息剔除 $str='te,st 测 .试,.,.?!::·…~&@#,.?!:;.……-&@#“” ...

  7. 2018-2019-2 20175214 实验三《敏捷开发与XP实践》实验报告

    一.实验内容 1.编码标准:在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能.提交截图,加上自己学号水 ...

  8. Python Django的安装配置

    学习Django前,我们要确定电脑上是否已经安装了Python,目前Python有两个版本,不过这两个版本并不互相兼容,所以根据个人选择合适的版本. 因为从Django2.0开始将不再支持Python ...

  9. centos输入正确的账号和密码登陆不进去

    vm下启动centos,输入正确的账号和密码,依然登陆不进去,一直处于这个界面: 暂时的解决方法是:先等待一段时间.重启,然后再输入密码,然后,ctrl+c 不停地ctrl+c,然后就登陆进去了.什么 ...

  10. day50—JavaScript鼠标拖拽事件

    转行学开发,代码100天——2018-05-05 今天通过鼠标拖拽事件复习巩固一下鼠标事件. 鼠标拖拽事件需要记住两点: 1.距离不变 2.鼠标事件(按下,移动,抬起) <div id=&quo ...