Cookie 总结
设置Cookie
//设置cookie
Cookie cookie = new Cookie("TOM","111");
//设置有效期,默认秒为单位
cookie. setMaxAge(7*24*60*60); //7天
//添加cookie到客户端
response.addCookie(cookie);
获取Cookie
<%
//获取cookie
Cookie[] cookies = request.getCookies();
if(cookies!=null && cookies.length>0) {
for(int i=0; i<cookies.length;i++) {
out.print(cookies[i].getName() +"————"+ cookies[i].getValue() + "<br/>");
}
}
%>
Cookie的中文支持
Cookie不支持中文的显示,必要的时候,需要进行转码和解码。
转码
strings[j]=java.net.URLEncoder.encode(list.get(i-1)[j],"UTF-8");
URLEncoder.encode("张三") ;
解码
out.print(java.net.URLDecoder.decode(cookies[i].getValue(),"UTF-8") + "<br/>"); Cookie[] cks = request.getCookies() ; for(Cookie c : cks)
{
out.write(c.getName() +"="+URLDecoder.decode(c.getValue())+"<br>") ;
}
============================================================================================
1)向客户端浏览器写入Cookie //1.创建一个Cookie对象
Cookie cookie = new Cookie(name,“”shindo“”); //2.setMaxAge:设置Cookie的最大时效,以秒为单位,若为0,表示立即删除该Cookie,
//若为负数,表示不存储该Cookie,若为正数,表示该Cookie的存储时间。
cookie.setMaxAge(30); //3.设置Cookie的作用范围:可以作用当前目录和当前目录的子目录,但不能作用于当前目录的上一级目录。
cookie.setPath(request.getContextPath()); //4.调用response的一个方法把Cookie传给客户端
response.addCookie(cookie); 2)从浏览器读取Cookie //1.获取Cookie
Cookie[] cookies = request.getCookies();
if(cookies != null && cookies.lenth > 0){
for(){
//2.获取Cookiede name 和value
out.print(cookie.getName() + ":" + cookie.getValue());
out.print("<br>");
}
}
=====================================================================================
// new一个Cookie对象,键值对为参数
Cookie cookie = new Cookie("key", "value");
// 设置Cookie最大生存时间,以秒为单位,负数的话为浏览器进程,关闭浏览器Cookie消失
cookie.setMaxAge(60); // 一分钟
// 将Cookie添加到Response中,使之生效
response.addCookie(cookie);
读取Cookie,读取Cookie只能从request中获取全部Cookie,然后迭代之.虽然Cookie也是键值对,但是貌似不能像Map一样通过Key来获取值.
Java代码 收藏代码
// 从request中获取Cookie,拿到的是一个Cookie数组
Cookie[] cookies = request.getCookies();
// 然后迭代之
if (cookies != null && cookies.length > 0) { //如果没有设置过Cookie会返回null
for (Cookie cookie : cookies) {...}
}
删除Cookie,删除Cookie的话,只需要将Cookie的生存期设为0即可
Java代码 收藏代码
Cookie[] cookies = request.getCookies();
if (cookies != null && cookies.length > 0) {
for (Cookie cookie : cookies) {
String name = cookie.getName();
// 找到需要删除的Cookie
if (name.compareTo("key") == 0) {
// 设置生存期为0
cookie.setMaxAge(0);
// 设回Response中生效
response.addCookie(cookie);
}
}
}
修改Cookie,修改Cookie和删除的步骤是一样的,先找到需要删除的Cookie,然后设置它的新的Value,再设回Response
Java代码 收藏代码
Cookie[] cookies = request.getCookies();
if (cookies != null && cookies.length > ) {
for (Cookie cookie : cookies) {
if (cookie.getName.compareTo("key") == 0) {
cookie.setValue("newValue");
response.addCookie(cookie);
break;
}
}
}
Cookie 总结的更多相关文章
- 超大 Cookie 拒绝服务攻击
有没有想过,如果网站的 Cookie 特别多特别大,会发生什么情况? 不多说,马上来试验一下: for (i = 0; i < 20; i++) document.cookie = i + '= ...
- IE10、IE11 User-Agent 导致的 ASP.Net 网站无法写入Cookie 问题
你是否遇到过当使用一个涉及到Cookie操作的网站或者管理系统时,IE 6.7.8.9下都跑的好好的,唯独到了IE10.11这些高版本浏览器就不行了?好吧,这个问题码农连续2天内遇到了2次.那么,我们 ...
- 解决cookie跨域访问
一.前言 随着项目模块越来越多,很多模块现在都是独立部署.模块之间的交流有时可能会通过cookie来完成.比如说门户和应用,分别部署在不同的机器或者web容器中,假如用户登陆之后会在浏览器客户端写入c ...
- jquery插件的用法之cookie 插件
一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...
- 一个诡异的COOKIE问题
今天下午,发现本地的测试环境突然跑不动了,thinkphp直接跑到异常页面,按照正常的排错思路,直接看thinkphp的log 有一条 [ error ] [2]setcookie() expects ...
- [转载]Cookie/Session的机制与安全
Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以知道当前是和哪个客户在打交道.本文来详细讨论Cookie和Session的实现机制,以及其中涉及的安全问题. 因 ...
- jquery.cookie的使用
今天想到了要为自己的影像日记增加赞的功能,并且需要用到cookie. 记得原生的js操作cookie也不是很麻烦的,但似乎jquery更简单,不过相比原生js,需要额外引入2个文件,似乎又不是很好,但 ...
- 跨域问题,前端主动向后台发送cookie
跨域是什么? 从一个域名的网页访问另一个域名的资源,就会出现跨域.只要协议.端口.域名有一个不同就会出现跨域 例如: 1.协议不同 http://www.baidu.com:80 和 https:/ ...
- 【流量劫持】沉默中的狂怒 —— Cookie 大喷发
精简版:http://www.cnblogs.com/index-html/p/mitm-cookie-crack.html 前言 上一篇文章 讲解了如何借助前端技术,打造一个比 SSLStrip 更 ...
- 好好了解一下Cookie
Cookie的诞生 由于HTTP协议是无状态的,而服务器端的业务必须是要有状态的.Cookie诞生的最初目的是为了存储web中的状态信息,以方便服务器端使用.比如判断用户是否是第一次访问网站.目前最新 ...
随机推荐
- 在线白板,基于socket.io的多人在线协作工具
首发:个人博客,更新&纠错&回复 是昨天这篇博文留的尾巴,socket.io库的使用练习,成品地址在这里. 代码已经上传到github,传送门.可以开俩浏览器看效果. 现实意义是俩人在 ...
- android蓝牙技术
配置权限 <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permiss ...
- pybot/robot命令参数说明
Robot Framework -- A generic test automation framework Version: 3.0 (Python 3.4.0 on win32) Usage: r ...
- Linux驱动中completion接口浅析(wait_for_complete例子,很好)【转】
转自:http://blog.csdn.net/batoom/article/details/6298267 completion是一种轻量级的机制,它允许一个线程告诉另一个线程工作已经完成.可以利用 ...
- 2016年最好的15个Web设计和开发工具
1.ai2html ai2html是适用于Adobe Illustrator的开源脚本,可以转换Illustrator文件为html和css. 官方网站:http://ai2html.org/ 2.A ...
- 4.1HTML和Bootstrap css精华
1.HTML 2.理解Bootstrap HTML元素告诉浏览器,他要表现的是什么类型的内容,当他们不提供任何关于如何显示内容的信息.如何显示内容的信息,由CSS提供. 本书仅包含足够的信息,让你查看 ...
- IOS 音频开发文件大小计算
音频基础知识 音频文件计算大小 音频转码 标签(空格分隔): 调查 IOS音频 https://developer.apple.com/library/ios/documentation/MusicA ...
- PostgreSQL Hot Standby的搭建
一. 简介: PG在9.*版本后热备提供了新的一个功能,那就是Stream Replication的读写分离,是PG高可用性的一个典型应用.这个功能在oracle中叫active d ...
- 有三个线程T1 T2 T3,如何保证他们按顺序执行-转载
T3先执行,在T3的run中,调用t2.join,让t2执行完成后再执行t3 在T2的run中,调用t1.join,让t1执行完成后再让T2执行 public class Test { // 1.现在 ...
- vs 常见问题汇总
vs添加对dll的引用 我们在使用vs进行开发调试的时候经常会遇到一个问题,就是当我们的主工程引用到其他工程更新的dll(我们经常采用copy到工程目录的方法).亦或者当我们的多个工程引用到同一个dl ...