java中如何获取cookie

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中如何获取cookie相关的知识,希望对你有一定的参考价值。

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



 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写入的东西

参考技术A 综述:Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等,服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。

1.获取Cookie的值:获取Cookie值的标准代码格为:myCookie.Values["auth"];
上句代码可以获取名为myCookie的Cookie对象键名为auth的键值。如果不存在,则返回null。
DateTime now=new DateTime.Now;
Response.Cookies["Info"].Expires = DateTime.Now.AddDays(1);
//设定Cookie过期时间下面的代码示例演示删除应用程序中所有可用 Cookie 的一种方法
2.代码如下:
HttpCookie aCookie;
string cookieName;
int limit = Request.Cookies.Count;
for (int i = 0; i < limit; i++)

cookieName = Request.Cookies[i].Name;
aCookie = new HttpCookie(cookieName);
aCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(aCookie);

3.以上就是Java程序开发中涉及到的获取cookie方法
参考技术B 在java中,有一个request.getCookie()的方法,用于使服务器端获取客户端相应的cookie信息 参考技术C 首先Cookie是客户端技术,那么获取Cookie一定是在请求服务器之后,响应浏览器(也就是客户端)来实现的,
具体实现步骤:
使用request.getCookie();来获取,返回的是一个Cookie对象,返回之后你就看可以对这个Cookie来进行操作了,你可以通过 cookie.setMaxAge()来设置这个cookie的过期时间和这个Cookie的有效路径(注意有效路径是决定这个Cookie要缓存那个路径下的缓存的)。
具体就是这些,满意请采纳。
参考技术D Cookie[] cookies = request.getCookies();//这样便可以获取一个cookie数组
for(Cookie cookie : cookies)
cookie.getName();// get the cookie name
cookie.getValue(); // get the cookie value


若要查看更多有关cookie的操作,请参阅下面的地址:
http://www.cnblogs.com/muzongyan/archive/2010/08/30/1812552.html

以上是关于java中如何获取cookie的主要内容,如果未能解决你的问题,请参考以下文章

如何在expressjs中获取cookie值

如何获取会话 cookie

java 通过HTTP请求模拟登陆,获取不到cookie,高手帮忙看一下,代码如下

如何在asp.net网站中获取cookie值

js中如何获取Cookies的值

如何用正则表达式获取cookie