Cookie

 

Cookie

一,cookie

英文直接翻译过来的意思呢就是小甜品 Cookie英文意指饼干,不过在电脑术语中它可不像饼干那么简单。简单的说,Cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机。当你在浏览网站的时候,Web服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都记录下来。当下次你再光临同一个网站,Web服务器会先看看有没有它上次留下的Cookie资料,有的话,就会依据Cookie里的内容来判断使用者,送出特定的网页内容给你。 
Cookie的使用很普遍,许多提供个人化服务的网站,都是利用Cookie来辨认使用者,以方便送出使用者量身定做的内容,像是Web接口的免费E-mail网站,都要用到 Cookie。Cookie中记载的资料相有限,Cookie是安全的。网站不可能经由Cookie获得你的E-mail地址或是其它私人资料,更没有办法透过Cookie来存取你的计算机。但是如果你实在不喜欢Web服务器乱丢饼干(Cookie)到你家,当然可以让浏览器拒绝网站存放Cookie到你的计算机。只要在IE的“工具”菜单下选择“Intertnet选项”的“安全”,按自定义级别,将Cookie部分设为关闭,按确定,关闭浏览器,再重新启动浏览器即可。当你关闭Cookie之后,很多网站的个人化服务功能很可能也不能再使用了.

二,小例

public void doGet(HttpServletRequest request, HttpServletResponse response)

        throws ServletException, IOException {

    

     response.setContentType("text/html;charset=utf-8");

     PrintWriter out = response.getWriter();

     //把请求信息中用户账号写成cookie

     //请求消息中将账号和昵称获取

     String name=request.getParameter("name");

     String nickName=request.getParameter("nickName");

     //判断有没有输入name和nickname

     if(name==null||nickName==null){

        out.println("请输入!!!");

        return;

     }

     //创建对象保存会话状态信息

     Cookie cookie1=new Cookie("name",name);

     cookie1.setMaxAge(24*60*60);

     Cookie cookie2=new Cookie("nickName",nickName);

     System.out.println(cookie1.getName()+cookie1.getValue());

     cookie1.setValue("Tom");

    

     //把cookie对象添加到响应消息中发送回客户端

     cookie1.setDomain("localhost");

     cookie2.setDomain("localhost");

     response.addCookie(cookie1);

     response.addCookie(cookie2);

     out.println("欢迎访问本servlet");

     //从请求消息中将cookie获取到

     Cookie cookies[]=request.getCookies();

     if(cookies!=null){

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

           System.out.println(cookies[i].getName()+":"+cookies[i].getValue()+":"+cookies[i].getMaxAge()+":"+cookies[i].getDomain());

        }

     }

     out.flush();

     out.close();

   }

三,常用函数

//创建对象保存会话状态信息

Cookie cookie1=new Cookie("name",name);

//有效期

cookie1.setMaxAge(24*60*60);

//设置内容为   tom

cookie1.setValue("Tom");

//设置域名

cookie1.setDomain("localhost");

//添加

response.addCookie(cookie1);

//保存值   "name" 是名字     name 是值

Cookie cookie1=new Cookie("name",name);

 

四,小结

一般要是想调用cookie中存得值不能直接得到要用循环:

Cookie cookies[]=request.getCookies();

       if(cookies!=null){

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

              String last=cookies[i].getName();

              if("last_time".equals(last)){

                  out.println("你是老用户,上次访问的时间:"+cookies[i].getValue());

                  break;

              }

           }

       }else{

           out.println("你是第一次访问!!!");

       }

       Cookie cookie=new Cookie("last_time",new Date(System.currentTimeMillis()).toString());

       cookie.setMaxAge(30*24*60*60);

       response.addCookie(cookie);

要验证,有时还会有很多cookie从里面挑,这是显示上次访问的时间的代码。

Cookie[] cookies = request.getCookies();

       Integer n=1;

       if(cookies!=null){

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

              String name=cookies[i].getName();

              if("number".equals(name)){

                  n=Integer.parseInt(cookies[i].getValue())+1;

                  out.println("您是第"+n+"访问!!!");

              }

           }

          

       }else{

           out.println("您是第一次访问!!!");

       }

       Cookie cookie=new Cookie("number",n.toString());

       cookie.setMaxAge(30*24*60*60);

       response.addCookie(cookie);

这是记录你访问多少次的cookie代码!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值