JavaEE中的Cookie的基本使用方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaEE中的Cookie的基本使用方法相关的知识,希望对你有一定的参考价值。

  之前一直使用的是统一登录系统,相关的登录由别的部门开发以及维护。但由于最近项目的需要,我们需要自己开发一套简单的登录功能。因此这里就涉及到了一个Cookie的功能。之前也了解过相关的内容,但这次需要独立的开发一下,所以就简单的记录一下流程及遇到的相关问题。

  一、写入Cookie操作

  

				//将对应的登录信息写入对应的cookie
				//登录账号
				Cookie accountCookie=new Cookie(loginCookieName,orgResult.getAccount());
				accountCookie.setMaxAge(60*30);//默认cookie半小时失效
				accountCookie.setPath("/");//注意需要设置请求路径
				reponse.addCookie(accountCookie);

  对上面的内容,进行一下简单的说明,

     1.构造方法中cookie的两个参数 key-value,没什么好说的,在后面读取对应的key,即可获取相关的value

     2.设置cookie的声明周期 单位为秒 例如:上面的60*30 指的是 30分钟

    如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。

    如果设置为 0 的话,则该cookie会被删除。

     3.accountCookie.setPath("/"),此处一定要设置cookie的请求路径,如果未设置的话,默认是当前的路径,这时如果是其它的请求路径来获取cookie的时候,就有可能获取不      到对应的cookie

      例如:之前的请求路径为 /org/orgList 未设置cookie的路径 ,默认的cookie的请求路径为 /org  这时如果你请求  /org 路径下面的请求的时候就可以获取到相关的cookie值

  但是如果你的请求路径为 /sku 的话,那么你将无法获取到相关的cookie

      本人之前就是犯了这个错误,以至于一直获取不到相关的cookie

  上面的代码设置的是 /  则所有的请求都将会获取到对应的cookie

 

 

     二、读取Cookie操作

     

   Cookie[] cookies = request.getCookies();
        if (cookies == null)
            return null;
        for (Cookie c : cookies) {
            if (c.getName().equals(cookieName)) {
                return c.getValue();
            }
        }

  循环遍历对应的cookie,,找到对应的key的值。

 

    下面展示一下浏览器中存储的cookie的相关信息:

  设置路径为 "/"

    技术分享

      未设置为路径,默认为当前路径

   技术分享

  至于如何查看浏览器的cookie,百度一下,这里就不做具体的讲解了。

  下面给出一些参考链接:

  查看浏览器cookie的参考链接:http://blog.unvs.cn/archives/explorer-cookies-ie-chrome-firefox.html

  设置cookie路径的参考链接:http://bbs.csdn.net/topics/390571141?page=1

  cookie讲解参考链接:http://www.cnblogs.com/muzongyan/archive/2010/08/30/1812552.html

    

以上是关于JavaEE中的Cookie的基本使用方法的主要内容,如果未能解决你的问题,请参考以下文章

JavaEE实战——会话与状态 Cookie_Session

JavaEE实战——会话与状态 Cookie_Session

js代码片段: utils/lcoalStorage/cookie

XSS:如何从 C# 中的字符串中删除 JS 片段?

javaee学习-Cookie使用范例

cookie实现记住密码(jsp+servlet)初学JavaEE