用到的类 javax.servlet.http.Cookie
构造cookie 的方法 : new Cookie(键,值)
构造函数如下:
Cookie(java.lang.String name, java.lang.String value)
把cookie发送给客户端
HttpServletResponse.addCookie(javax.servlet.http.Cookie)
取得客户浏览器的cookie,返回的是数组
HttpServletRequest.getCookies()
getComment/setComment
获取/设置Cookie的注释。
getDomain/setDomain
获取/设置Cookie适用的域。一般地,Cookie只返回给与发送它的服务器名字完全相同的服务器。使用这里的方法可以指示浏览器把Cookie返回给同一域内的其他服务器。注意域必须以点开始(例如.sitename.com),非国家类的域(如.com,.edu,.gov)必须包含两个点,国家类的域(如.com.cn,.edu.uk)必须包含三个点。
getMaxAge/setMaxAge
获取/设置Cookie过期之前的时间,以秒计。如果不设置该值,则Cookie只在当前会话内有效,即在用户关闭浏览器之前有效,而且这些Cookie不会保存到磁盘上。
若生存时间为负值,代表浏览器关闭Cookie即消失。生存时间为0,代表删除Cookie,生存时间为正数,代表Cookie存在多少秒。
getName/setName
获取/设置Cookie的名字。本质上,名字和值是我们始终关心的两个部分。由于HttpServletRequest的getCookies方法返回的是一个Cookie对象的数组,因此通常要用循环来访问这个数组查找特定名字,然后用getValue检查它的值。
getPath/setPath
获取/设置Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下的所有页面。这里的方法可以用来设定一些更一般的条件。例如,someCookie.setPath("/"),此时服务器上的所有页面都可以接收到该Cookie。
getSecure/setSecure
获取/设置一个boolean值,该值表示是否Cookie只能通过加密的连接(即SSL)发送。
getValue/setValue
获取/设置Cookie的值。如前所述,名字和值实际上是我们始终关心的两个方面。不过也有一些例外情况,比如把名字作为逻辑标记(也就是说,如果名字存在,则表示true)。
getVersion/setVersion
获取/设置Cookie所遵从的协议版本。默认版本0(遵从原先的Netscape规范);版本1遵从RFC 2109 , 但尚未得到广泛的支持。
几个Cookie工具函数,获取指定名字的Cookie值
该函数是ServletUtilities.java的一部分。getCookieValue通过循环依次访问Cookie对象数组的各个元素,寻找是否有指定名字的Cookie,如找到,则返回该Cookie的值;否则,返回参数中给出的默认值。getCookieValue能够在一定程度上简化Cookie值的提取。
cookie保存在哪里
在Windows 9X系统计算机中,Cookie文件的存放位置为C:\Windows\Cookies,在Windows NT/2000/ XP的计算机中,Cookie文件的存放位置为C:\Documents and Settings\用户名\Cookie文件夹。
--------------------------------
下面是代码,是直接从项目中实际代码
/**
* 设置SSO认证标识(把用户名,密码 写入客户端浏览器的cookie),关闭浏览器后,cookie立即失效
*
* @param response
* HttpServletResponse
* @param userName
* 用户名
* @param password
* 密码
*/
public static void setReffer(final HttpServletResponse response, final String userName, final String password)
{
final String sSession = password + userName; //密码是SHA1加密,长度为40个字符(160位)
Cookie oItem;
// 因为Cookie 中不允许保存特殊字符, 所以采用 BASE64 编码,CookieUtil.encode()是BASE64编码方法,略..
oItem = new Cookie("SSO", CookieUtil.encode(sSession));
oItem.setDomain(.google.com); //请用自己的域
oItem.setMaxAge(-1); //关闭浏览器后,cookie立即失效
oItem.setPath("/");
response.addCookie(oItem);
}
/**
* 认证SSO标识(从客户端浏览器读入cookie, 并取得用户名、密码,不能取得时返回null)
*
* @param request
* @return 返回从cookie中取得的用户名、密码,不能取得时返回null.String[0]中保存用户名,String[1]中保存密码
*/
public static String[] checkReffer(final HttpServletRequest request)
{
final Cookie[] oCookies = request.getCookies();
if (oCookies != null)
{
for (final Cookie oItem : oCookies)
{
final String sName = oItem.getName();
if (sName.equals("SSO"))
{
final String sSession = CookieUtil.decode(oItem.getValue()); //解码 CookieUtil.decode()是BASE64解码方法,略..
if (sSession.length() > 40)
{
// 获得存储在 Cookies 中的用户名称和密码
final String sUser = sSession.substring(40);
final String sPass = sSession.substring(0, 40);
final String[] strArr =
{ sUser, sPass };
return strArr; //返回用户名,密码
}
}
}
}
return null;
}
分享到:
相关推荐
如果在Cookie中设置了"HttpOnly"属性,那么通过程序(JS脚本、Applet等)将无法读取到Cookie信息,这样能有效的防止XSS攻击。 对于以上两个属性, 首先,secure属性是防止信息在传递的过程中被监听捕获后信息泄漏,...
因为 Java Server Pages 文件被编译成 servlet,所以动态高速缓存功能对 Java Server Pages 文件的处理与对 servlet 的处理是一样的(特别说明的情况除外)。 过程 在管理控制台中,单击控制台导航树中的服务器 > ...
Java Servlet API说明文档 绪言 这是一份关于2.1版JavaServletAPI的说明文档,作为对这本文档的补充,你可以到http://java.sun.com/products/servlet/index.html下面下载Javadoc格式的文档。 谁需要读这份文档 这份...
说明:10分虽然有点高 但东西值 重点是 我也只想搞点分数下东西 谢谢支持 目录 I 简介 1 概览 1 适合读者 1 servlet容器是如何工作的 1 catalina结构图 1 tomcat的版本4和版本5 2 章节简介 2 第1章 一个简单的Web...
(1)判断是否是首次访问:如果cookie里面有时间,说明就不是第一次访问。 (2)如果是第一次访问,创建cookie,保存时间,把这个cookie回写到浏览器端。 (3)如果不是第一次访问,把时间回写到浏览器,记住当前...
57 4.3.7 Servlet协作 57 4.3.8 Filter 58 4.4 使用Servlet处理客户端请求 58 4.5 会话跟踪 61 4.5.1 使用Cookie进行会话跟踪 61 4.5.2 使用URL重写进行会话跟踪 62 4.5.3 使用隐藏表单域进行会话跟踪 63 4.6 小结 ...
4.描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。 5.列出Jsp中包含外部文件的方式,两者有何区别。 6.说明Jsp中errorPage的作用,应用范围。 7.介绍在Jsp中如何使用JavaBeans。 8.简单介绍JSP...
152、如何设置cookie在某一时间后过期? 37 153、如何获得当前的sessions数? 37 154、能设置一些代码在我所有的JSP文件之上运行?如果可以,能共享吗? 37 155、对一个JSP页,如果多个客户端同时请求它,同步可能吗...
152、如何设置cookie在某一时间后过期? 37 153、如何获得当前的sessions数? 37 154、能设置一些代码在我所有的JSP文件之上运行?如果可以,能共享吗? 37 155、对一个JSP页,如果多个客户端同时请求它,同步可能吗...
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...
与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...
上面配置是去掉了 Session 的存储Key 的作用域,之前设置的.itboy.net ,是写到当前域名的 一级域名 下,这样就可以做到N 个 二级域名 下,三级、四级....下 Session 都是共享的。 <!-- 用户信息记住我功能的...
获取Cookie 565 HTTP响应报头--Response 566 会话管理 566 Servlet过滤器 569 Servlet监听器 576 内容总结 579 独立实践 580 第二十九章: Jsp 技术 583 学习目标 583 JSP介绍 584 JSP语法 584 模板元素 588 指令...
说明:10分虽然有点高 但东西值 重点是 我也只想搞点分数下东西 谢谢支持 目录 I 简介 1 概览 1 适合读者 1 servlet容器是如何工作的 1 catalina结构图 1 tomcat的版本4和版本5 2 章节简介 2 第1章 一个简单的Web...
译者序 前言 第1章 Domino Web开发综述 1 1.1 为什么使用Domino 1...11.4.4 Cookie-Setting Servlet 293 11.4.5 小服务程序和Netes Java类 298 11.4.6 最后一点说明 299 参考信息 300 本章小结 300 附录 Domino URL 301
译者序 前言 第1章 Domino Web开发综述 1 1.1 为什么使用Domino 1...11.4.4 Cookie-Setting Servlet 293 11.4.5 小服务程序和Netes Java类 298 11.4.6 最后一点说明 299 参考信息 300 本章小结 300 附录 Domino URL 301
26. 简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。 14 27. XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式? 14 28. JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 15 29. ...
描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理。 5.列出Jsp中包含外部文件的方式,两者有何区别。 6.说明Jsp中errorPage的作用,应用范围。 7.介绍在Jsp中如何使用JavaBeans。 8.简单介绍...
2--EL表达式可操作常量 变量 和隐式对象. 最常用的 隐式对象有${param}和${paramValues}. ${param}表示返回请求参数中单个字符串的值. ${paramValues}表示返回请求参数的一组 值.pageScope表示页面范围的变量....