加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

写入和读取cookie(分别利用jsp和javascript)

(2012-07-25 14:07:47)
标签:

cookie

js

jsp

it

分类: 工作总结

这是在工作中经常碰到的问题,利用cookie进行数据的交互与传递,在刚刚进入公司的时候还用的很不顺手,大概只知道cookie是一个名值对的形式存在,还要分为浏览器cookie和本地磁盘cookie。导师总是很自然的说了句:“这些都是基本功。”好吧,我承认我的基本功的确很不行,尤其是这次回国了以后很久没看书没有再像原来那样拼命了,很多技术知识点早已抛到了九霄云外去了。曾为一个爷们的我现在怎么像个娘们扭扭捏捏的搞不懂。废话不多说了,开始记录下写入和读取cookie的过程。应用的比较多的就是利用jsp对cookie进行操作,还有利用js对cookie进行操作,利用js操作永远比利用jsp来的麻烦。下面一个个举例,比较简单的几个代码,以后可以继续ctrl+c和ctrl+v的用了。

 

自己曾写过两个页面用于cookie的判断welcome.jsp页面和newsAdd2.jsp页面。

以下是JSP脚本中对cookie的写入与读取:

在welcome.jsp页面中:

//当进入welcome页面后,将你访问的频道信息记录到cookie中,用于newsAdd2.jsp页面进行当前所在频道的判断

    if(null != cnum){

       Cookie cookie_channel = new Cookie("channelJudge", String.valueOf(cnum));

 

       cookie_channel.setPath("/");

       cookie_channel.setMaxAge(1*24*60*60);

       response.addCookie(cookie_channel);

    }

 

在newsAdd2.jsp页面中:

Cookie cookies[]= request.getCookies();

if (null != cookies) {

    for (int i = 0; i < cookies.length; i++) {

       Cookie cookie = cookies[i];

       if (cookie.getName().equals(“channelJudge”)) {

           String cookieValue = cookie.getValue();

           //……………………

}

}

}

 

以下是JS中对cookie的写入与读取:

文件1,往磁盘上写入cookie:

<body>

   

    <input type="button" value="cookie" onclick="test();"/>

   

</body>

 

<script type="text/javascript">

    function test() {

       var today = new Date();

       var expireDay = new Date();

       var msPerMonth = 24 * 60 * 60 * 1000 * 1;

       expireDay.setTime(today.getTime() + msPerMonth);

       document.cookie = "cookieName=zhang;expires=" + expireDay.toGMTString();

       //document.write("cookie已经写到硬盘上了");

       //document.write("内容是:" + document.cookie);

       //document.wirte("有效日期是:" + expireDay.toGMTString());

    }

</script>

 

文件2,根据cookie名往磁盘上读取该cookie值:

  <body>

   

    <input type="button" value="get cookie value" onclick="getCookie('cookieName');"/>

   

  </body>

 

  <script type="text/javascript">

   

    function getCookie(name)

    {

        var bikky = document.cookie;

        name += "=";

       var i = 0;

       while (i < bikky.length)

       {

            var offset = i + name.length;

            if (bikky.substring(i, offset) == name)

            {

                 var endstr = bikky.indexOf(";", offset);

                 if (endstr == -1) endstr = bikky.length;

       

             //alert(bikky.substring(offset, endstr));

                 return (bikky.substring(offset, endstr)); //返回的是string类型

            }

            i = bikky.indexOf(" ", i) + 1;

            if (i == 0) break;

       }

        return null;

}

  </script>

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有