Java中的Cookie(1)——基本操作

Java对cookie的操作比较简单,主要介绍下建立cookie和读取cookie,以及如何设定cookie的生命周期和cookie的路径问题。

建立一个无生命周期的cookie,即随着浏览器的关闭即消失的cookie,代码如下:
Cookie cookie = new Cookie("cookiename","cookievalue");
response.addCookie(cookie);

下面建立一个有生命周期的cookie,可以设置他的生命周期
cookie = new Cookie("cookiename","cookievalue");
cookie.setMaxAge(3600);
//在webapp文件夹下的所有应用共享cookie
cookie.setPath("/");
response.addCookie(cookie);
 
读取cookie
Cookie[] cookies = request.getCookies();//获取cookie数组
for(Cookie cookie : cookies){
    cookie.getName();
    cookie.getValue();
}

上面就是基本的读写cookie的操作。在实际中最好进行一下封装,比如增加一个cookie,关注的是cookie的name、value生命周期,所以进行封装一个函数,当然还要传入一个response对象,addCookie()代码如下
/**
 * 设置cookie
 * @param response
 * @param name  cookie名字
 * @param value cookie值
 * @param maxAge cookie生命周期  以秒为单位
 */
public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){
    Cookie cookie = new Cookie(name,value);
    cookie.setPath("/");
    if(maxAge>0)  cookie.setMaxAge(maxAge);
    response.addCookie(cookie);
}
 

读取cookie的时候,为了方便希望封装一个函数,只要提供cookie的name,便可以获取cookie的value,带着这个想法,很容易想到将cookie封装到Map里面,于是进行下面的封装
/**
 * 根据名字获取cookie
 * @param request
 * @param name cookie名字
 * @return
 */
public static Cookie getCookieByName(HttpServletRequest request,String name){
    Map<String,Cookie> cookieMap = ReadCookieMap(request);
    if(cookieMap.containsKey(name)){
        Cookie cookie = (Cookie)cookieMap.get(name);
        return cookie;
    }else{
        return null;
    }  
}

 
/**
 * 将cookie封装到Map里面
 * @param request
 * @return
 */
private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){ 
    Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
    Cookie[] cookies = request.getCookies();
    if(null!=cookies){
        for(Cookie cookie : cookies){
            cookieMap.put(cookie.getName(), cookie);
        }
    }
    return cookieMap;
}

 

原帖地址:http://www.cnblogs.com/muzongyan/archive/2010/08/30/1812552.html

时间: 2024-07-28 16:09:09

Java中的Cookie(1)——基本操作的相关文章

Asp.Net中对Cookie的基本操作

实例代码演示Asp.Net中对Cookie的基本操作. Imports System.Web.HttpContext Public Class CookieFramework '写入单个Cookie Public Shared Function WriteCookie(ByVal CookieName As String, ByVal CookieValue As String, ByVal ExpiresDate As Integer) As Boolean Dim aCookie As Ne

java中使用Cookie替代Session解决跨域Session失效问题

分布式系统中,各个子域名跨域访问的时候,会出现session失效问题,导致登录失败. 例如:用户在www.111cn.net 上登录成功了.但是切换到他的个性化域名 mb.111cn.net 上的时候session失效. 怎么办? 可以采用session复制方案,比如nfs session共享,membercache session存储,还有使用terracotta也可以. 采取以上方案都可以,但是上述方案会导致开发环境过于复杂,运维环境也过于复杂,而且session跨网络传输响应速度会减慢.

java中使用cookie记录用户登录

正在模仿mvc模式,不过没有写代理类与工厂类,这个只是实现功能,连数据库都没有关. 过程:打开index.jsp,若是cookie为null则跳到form.jsp 若不为null则查找固定的cookie_user的值,再找数据库取出对应的随机码.然后加密得出的字符串与cookie_random的值相比若都相等则输入welcom.表示登录成功. index.jsp //在if 那里用response.send 这个跳转,一定要在下面加return 不然出错.  代码如下 复制代码 <%@ page

Java中的cookie(3)——cookie中存取中文

// 模拟CookieCookie cookie1 = new Cookie("num", "001"); Cookie cookie2 = new Cookie("name", URLEncoder.encode("张三", "UTF-8")); response.addCookie(cookie1); response.addCookie(cookie2); // 获取CookieCookie[] co

Java中Cookie和Session的那些事儿_java

Cookie和Session都是为了保持用户的访问状态,一方面为了方便业务实现,另一方面为了简化服务端的程序设计,提高访问性能.Cookie是客户端(也就是浏览器端)的技术,设置了Cookie之后,每次访问服务端,请求中都会带上Cookie:Session是服务端技术,在服务端存储用户的访问信息. 使用Cookie传递信息,随着Cookie个数增多和访问量增大,它占用的带宽会越来越大:使用Session保存信息,最大的弱点就是不容易在多台服务器之间共享. 1 Cookie 通俗地讲,当用户使用H

javascript中应用 cookie 的 例子

cookie|javascript java中的cookie使用时非常的广泛的,尤其一些 在线 影音 播放的网站, 一般都是用服务器段脚本将 影音文件的名字 放到cookie中,然后在客户段 用 javascript 读取 .这样可以隐蔽 文件的名字,防止下载. 下面就把一个javascript中使用 cookie的例子发出来.大家共同学习.  写 cookie          var expiresTime=new Date();         expiresTime.setTime(ex

老生常谈java中cookie的使用_java

1 什么是cookie 浏览器与WEB服务器之间是使用HTTP协议进行通信的,当某个用户发出页面请求时,WEB服务器只是简单的进行响应,然后就关闭与该用户的连接.因此当一个请求发送到WEB服务器时,无论其是否是第一次来访,服务器都会把它当作第一次来对待,这样的不好之处可想而知.为了弥补这个缺陷,Netscape开发出了cookie这个有效的工具来保存某个用户的识别信息,因此人们昵称为"小甜饼".cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段:Netscape

JAVA中Cookie MaxAge属性及其使用

API文档中对MaxAge的描述: public void setMaxAge(int expiry) Sets the maximum age of the cookie in seconds. A positive valueindicates that the cookie will expire after that many seconds have passed. Note that the value is the maximum age when the cookie will

javascript针对cookie的基本操作实例详解_javascript技巧

本文实例讲述了javascript针对cookie的基本操作.分享给大家供大家参考,具体如下: js被C#.JAVA等开发者视为声名狼藉的附属编程语言是有道理的,比如说,对cookie的操作.js就没有一套类似C#的现成处理方案,而只能由你自己去完成.下面我就将自己学习的用面向对象的思想对cookie进行处理的学习笔记整理一下,以飨读者. cookie的常见操作分析: (1)设置cookie 包括了添加和修改功能,事实上如果原有cookie 名称已经存在,那么添加此cookie 就相当于修改了此