zoukankan      html  css  js  c++  java
  • 读写cookie

                一、
    什么是cookie?

          cookie就是在用户访问服务器时,服务器在用户硬盘上存放的信息。

        服务器可以根据该信息来跟踪用户状态。

                二、 cookie有什么用?

        当用户首次访问服务器的时候,服务器都会在用户的硬盘上存储一些相关信息的cookie

        以后用户再访问的时候,服务器都会分析请求中的cookie数据来获得信息。

                三、 怎么使用cookie

        1、创建cookie对象

        Cookie   c  =  new  Cookie("username","Tom");

        第一个参数是cookie的名字;第二个参数是cookie的值。

        2、将cookie对象添加到HTTP相应结果中

        response.addCookie(c);

        3、服务器读取客户端的cookie

        Cookie[]  cookies = request.getCookies();

        该方法返回的是一个Cookie数组,里面存放的是所有cookie对象

        如果没有任何cookie对象,那么返回的是一个null;

        4、获得cookie的名字和值

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

            System.out.println("cookie的名字:" + cookies[i].getName());

            System.out.println("cookie的值:" + cookies[i].getValue());

        }

        5、设置cookie的有效期

        Cookie   c  =  new  Cookie("username","Tom");

        c.setMaxAge(int expiry);     //expiry的单位是秒

        该方法有以下几点注意:

            1如果expiry大于零,说明cookie在硬盘上的保存时间为expiry秒

            2如果expiry等于零,就指示浏览器删除当前的cookie

            3如果expiry小于零,就不保存cookie到硬盘,尽保存在浏览器进程中,

             当浏览器关闭cookie也就消失。

    例子代码:

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;

    public class Cookie extends Action{

     @Override
         public ActionForward execute(ActionMapping mapping, ActionForm form,
           HttpServletRequest request, HttpServletResponse response)
           throws Exception {
          //获得客户端的所有cookie对象
          javax.servlet.http.Cookie[] cookies = request.getCookies();
          if(cookies != null){
               //循环访问每个cookie
               for(int i = 0; i < cookies.length; i++){
                System.out.println("cookie的名字是:" + cookies[i].getName());
                System.out.println("cookie的值是:" + cookies[i].getValue());
           }
          }else{
               System.out.println("不存在cookie!");
          }
          String cookiename = "cookiename";
          String cookievalue = "cookievalue";
          javax.servlet.http.Cookie c = new javax.servlet.http.Cookie(cookiename,cookievalue);
          //向客户端写入一个cookie
          response.addCookie(c);
          //设置cookie的有效期
          c.setMaxAge(60*60);  
          return (mapping.findForward("result"));
         }

      }

  • 相关阅读:
    select移动选项
    jFinal+AngularJs未来javaEE开发的趋势——程序员的福音 .
    MVC框架PK:Angular、Backbone、CanJS与Ember
    错误 1093 You can't specify target table 'table name' for update in FROM clause
    Angularjs开发一些经验总结
    需求调研的步骤、方法
    MyEclipse如何跟踪调试
    需求入门: 软件需求的三个层次
    JAVA的Random类(转)
    Java中从[1,36]随机生成7个不重复的数字,放入一个数组中
  • 原文地址:https://www.cnblogs.com/SunnyYue/p/3970308.html
Copyright © 2011-2022 走看看