cookies的赋值与取值

原创 2015年07月10日 17:34:57

1.设置cookie到客户端
Cookie c1 = new Cookie("username","hzh");
response.addCookie(c1);

Cookie c2 = new Cookie("password","123");
//设置生命周期为1小时,秒为单位
c2.setMaxAge(3600);
response.addCookie(c2);

response.getWriter().print("ok");

查看此时的cookie文件,发现只写入了password,因为此时未给 username设置生命周期,它还在客户端的内存中,并为写到文件中(此时客户端关闭此浏览器窗口,就丢失了),想写到客户端,需要加入c1.setMaxAge(3600)在 response.addCookie(c1);之前

以下是写入我电脑中的cookie

java Cookie 设置和读取 - hzh - The Legend of 1900



2.读取cookie文件

Cookie[] cookies = request.getCookies();
for(Cookie c :cookies ){
System.out.println(c.getName()+"--->"+c.getValue());
}

控制台输出结果如下:
username--->hzh
password--->123
JSESSIONID--->33BEAF95C526E0DDCF6A64990E533845


注意:
1.服务器可以向客户端写内容, 只能是文本内容
2.客户端可以阻止服务器写入,禁用cookies
3.只能读取自己webapp写入的东西

应用:将重要信息保存到cookie中,下一次用户请求服务,可从cookies中取得想要的值。
如:if(custId == 0){
        custId = Long.parseLong(String.valueOf(CookieUtils.getCookieValue(request, "custId", "0")));
        }

方法:
public static String getCookieValue(HttpServletRequest request, String cookieName, String defaultValue)
    {
        String str = defaultValue;
        Cookie cookieList[] = request.getCookies();
        if(cookieList != null && cookieName != null)
        {
            for(int i = 0; i < cookieList.length; i++)
            
                try
                {
                    if(!cookieList[i].getName().equals(cookieName))
                        continue;
                    str = URLDecoder.decode(cookieList[i].getValue(), STORAGE_ENCODING);
                    break;
                }
                catch(UnsupportedEncodingException uee)
                {
                    uee.printStackTrace();
                }


        }
        return str;
    }

/**
* 设置cookie

* @param response
* @param name
*            cookie名字
* @param value
*            cookie值
* @param maxAge
*            cookie生命周期 以秒为单位
*/
public 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的信息 var cookies = request.Cookies["yuan_area"]; if (areaid == nul...
  • lybwwp
  • lybwwp
  • 2014年10月25日 11:27
  • 1929

Javascript设置和读取cookie中的值

以前一直都以为只有像PHP、JAVA这样的高级语言才可以操作cookie,但是今天在研究wordpress模板的时候,发现博客模板的主题色调是通过javascript来设置的。那么,到底javascr...

js中实现cookie的增删改查(document.cookie的使用详情)

一、设置cookie的值 1、每个cookie都是一个名称/值对,名称/值对用等号连接,并将该名称/值对赋值给document.cookie即可。如:document.cookie="id=77";...

Cookie的设置与取值 | 解决中文乱码问题

WebForm1.aspx页面 当页面刚加载就取得的Cookie为UserName的值, $(function () ...

后台从cookie中取值

Cookie cook =CookieUtil.getCookieByName(request, "userinfo"); // if(cook==null){ request.setAttrib...

Java中cookie取值和存值

cookie取值: Cookie[] cookies = request.getCookies(); for(Cookie cookie : co...

如何使用js来获取cookie的值

如何使用js来获取cookie的值 读取属于当前文档的所有cookies var allcookies = document.cookie; 定义一个函数,用来读取特定的coo...
  • hjingtao
  • hjingtao
  • 2012年03月09日 07:58
  • 55120

cookie 赋了值但是不起作用 需要先清空再赋值就可以

$.cookie('buylist', null, { path: '/' });     $.cookie('buylist', pinfo.substring(1), { path: '/' }...
  • hyhyct
  • hyhyct
  • 2014年10月08日 17:19
  • 749

Asp操作Cookies(设置[赋值]、读取、删除[设置过期时间])

Response.Cookies("letwego")("visiter")="84ww" '赋值 Response.Cookies("letwego").Expires= (now()+7) '设...
  • smave88
  • smave88
  • 2013年05月18日 22:34
  • 415

Asp 操作Cookies(包括设置[赋值]、读取、删除[设置过期时间])

Asp 操作Cookies(包括设置[赋值]、读取、删除[设置过期时间]) 作者: 字体:[增加 减小] 类型:转载 时间:2010-03-19 我要评论 Asp 操作Cookies(包括...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cookies的赋值与取值
举报原因:
原因补充:

(最多只允许输入30个字)