l 1.设置Cookie
Cookie cookie = new Cookie("key", "value");
cookie.setMaxAge(60); //设置60秒生存期,假如设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。
cookie.setPath("/test/test2"); //设置Cookie路径,不设置的话为当前路径(对于Servlet来说为request.getContextPath() + web.XML里配置的该Servlet的url-pattern路径部分)
response.addCookie(cookie);
l 2.读取Cookie
Cookie[] cookies = request.getCookies();
//该方法可以读取当前路径以及“直接父路径”的所有Cookie对象,假如没有任何Cookie的话,则返回null
例子:
Cookie cookies[] = request.getCookies();
if (cookies != null)
{
for (int i = 0; i < cookies.length; i++)
{
if (cookies[i].getName().equals("cookiename"))
{
System.out.println("+++++++++++++++++++++++++++++++++++:"+URLDecoder.decode(cookies[i].getValue(),"UTF-8"));
}
}
}
l 3.删除Cookie
Cookie cookie = new Cookie("key", null);
cookie.setMaxAge(0); //设置为0为立即删除该Cookie
cookie.setPath("/test/test2"); //删除指定路径上的Cookie,不设置该路径,默认为删除当前路径Cookie
response.addCookie(cookie);
l 4.注意:假设路径结构如下
/test
/test/test2
/test345
/test555/test666
a.相同键名的Cookie(值可以相同或不同)可以存在于不同的路径下。
b. 删除时,假如当前路径下没有键为"key"的Cookie,则查询全部父路径,检索到就执行删除操作(每次只能删除一个与自己最近的父路径Cookie) 本文来自织梦
FF.必须指定与设定cookie时使用的相同路径来删除改cookie,而且cookie的键名不论大写、小写或大小混合都要指定路径。
IE.键名小写时,假如当前路径为/test/test2,假如找不到再向上查询/test、/test555、/test345,假如还找不到就查询/ 。(/test555/test666不查询)
键名大小写混合或大写时,不指定路径则默认删除当前路径,并且不向上查询。
c.读取Cookie时只能读取直接父路径的Cookie。
假如当前路径为/test/test2,要读取的键为"key"。当前路径读取后,还要读取/test,/test读取后,还要读取/ 本文来自织梦
d.在做Java的web项目时,由于一般的Web服务器(如Tomcat或Jetty)都用Context来治理不同的Web Application,这样对于每个Context有不同的Path,
在一个Server中有多个Web Application时要非凡小心,不要设置Path为/的Cookie,轻易误操作。(当然前提是域名相同)
实例:
1. 设置Cookie
function SetCookie(name, value)
{
var expdate = new Date();
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
alert("expires:"+expires);
var path = (argc > 3) ? argv[3] : null;
alert("path:"+path);
var domain = (argc > 4) ? argv[4] : null;
alert("domain:"+domain);
var secure = (argc > 5) ? argv[5] : false;
alert("secure:"+secure);
expdate.setTime(expdate.getTime() + ( 60 * 30 * 24 * 60 * 60 * 1000 ));
document.cookie = name + "=" + escape (value) + "; expires="+ expdate.toGMTString()
+((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
+((secure == true) ? "; secure" : "");
}
2. 读取Cookie
function GetCookie(name)
{
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return GetCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return "";
}
function GetCookieVal(offset)
{
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
3. 删除Cookie
function DelCookie(name)
{
var exp = new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
}
分享到:
相关推荐
Java小技巧:关于Cookie的操作.txt
在本文中,我们将介绍 Java 模拟 Cookie 登陆的简单操作,结合实例形式分析了 Java 模拟 Cookie 登陆的相关原理与基本实现技巧。本示例主要是为了演示如何使用 Java 语言模拟 Cookie 登陆,实现自动登陆的功能。 是...
在Java编程中,Cookie是一种非常重要的技术,它用于在客户端和服务器之间传递信息,尤其是在实现用户会话管理、个性化设置等方面。...通过不断实践和深入学习,开发者可以掌握更多关于Cookie和Web开发的高级技巧。
### Java应用技巧:对于Cookie的操作详解 #### 一、引言 在Web开发中,Cookie是一种常用的技术,用于存储用户的一些基本信息(例如登录状态、购物车等),以便于后续访问时能够快速识别用户身份,提高用户体验。本...
标题中的“cookie”一词指的是Web...以上是关于Cookie技术的基本介绍,具体实现细节和使用技巧可能需要参考原文档或“cookie.jsp”文件的内容。对于开发者来说,理解和熟练使用Cookie是构建高效、安全的Web应用的基础。
Java Scrip环境中的网络课程开发之cookie技术应用研究是一篇关于JavaScript环境中cookie技术在网络课程开发中的应用研究论文。论文首先介绍了cookie技术的概念和特点,然后详细讨论了cookie技术在网络课程开发中的...
8. **源码解析**:博主可能提供了使用特定编程语言(如Java、JavaScript或Python)操作Cookie的示例代码,解释了如何创建、读取、更新和删除Cookie。 在CookieDemo这个示例项目中,可能包含了实现上述功能的源代码...
#### 三、Cookie的详细属性及其操作 - **`getComment/setComment`**:获取或设置Cookie的注释。 - **`getDomain/setDomain`**:获取或设置Cookie的有效域名。例如,`.sitename.com`会使得Cookie对所有以`sitename....
│ Java面试题74:sql语句优化小技巧.mp4 │ Java面试题75:批量插入几百万条数据.mp4 │ Java面试题76:有没有使用过redis.mp4 │ Java面试题77:redis的使用场景.mp4 │ Java面试题78:redis存储对象的方式.mp4 │...
Java面试题74:sql语句优化小技巧 Java面试题75:批量插入几百万条数据 Java面试题76:有没有使用过redis Java面试题77:redis的使用场景 Java面试题78:redis存储对象的方式 Java面试题79:redis数据淘汰机制 Java...
以下是一个简单的JSP页面代码示例,展示了如何创建和读取Cookie: ```jsp // 创建Cookie Cookie ck = new Cookie("cww2", "test2!!"); ck.setMaxAge(65536); // 设置生存期 response.addCookie(ck); // 读取...
在JSP(JavaServer Pages)开发过程中,经常会遇到一些需要技巧性处理的问题,本文将重点介绍两个常见的小技巧:如何获取虚拟目录的物理路径以及如何解决`response.sendRedirect`带中文的问题。此外,还会简要提及...
这个小项目对于学习Java编程、数据库操作以及软件工程实践来说,是一个非常有价值的实例。以下是对该项目涉及的主要知识点的详细解析: 1. **Java基础**:项目的主体是用Java编写的,因此需要掌握Java的基础语法,...
15 applet java可以编写两类程序,applications和applet,applications可以在控制台直接运行,与其他高级编程语言没有太大区别,而java的特色在于它具有编制小应用程序的功能,applet可以在internet上传输并在兼容...
NIO (New I/O) 提供了非阻塞I/O操作的能力,而 JUC (Java Util Concurrency) 包含了一系列线程安全的数据结构和工具类。 **14. Lambda** Lambda 表达式允许你以更简洁的方式定义接口实现。这对于函数式编程风格的...
本项目是一个基于Java技术的酒店管理系统,涵盖了酒店预订与后台管理的全部流程,旨在提供一个完整的教学示例或...通过分析和运行源码,不仅可以掌握Java编程技巧,还能了解到如何设计和实现一个完整的管理信息系统。
Java浏览器是一种基于Java编程语言...通过这个Java小例子,学习者不仅可以深化Java编程技能,还能了解到网络编程和GUI设计的基本原理。同时,这样的项目也鼓励开发者实践和理解Web浏览器的工作原理,提升问题解决能力。
Java工程师面试时,需要掌握广泛的知识点,涵盖了基础语法、数据结构、IO操作、多线程、网络编程、数据库交互等多个方面。以下是一些主要的面试重点: **一、Java基础知识** 1. Java有8种基本数据类型,包括整型...
### 百度面试题汇总(Java) #### 一、Java基础知识 1. **自我介绍**:面试官希望从自我介绍中获取应聘者的基本背景信息,包括但不限于教育经历、工作经验等,以便于后续针对这些背景提出具体问题。 2. **项目...
### 安全小技巧之个人电脑防黑客入侵八准则 在网络时代,个人电脑的安全变得尤为重要。随着黑客工具的普及和技术的发展,黑客攻击的风险日益增加。本文档“安全小技巧之个人电脑防黑客入侵八准则参照.pdf”提供了一...