会话

六、会话
    一】定义:
            用户输入URL地址,有效访问某个网站,在该网站上的进行一系列有效操作,
            随后再关闭浏览器。这整个过程就叫做一次会话。
    二】用途:
            主要解决服务端如果保存每个客户端对应的私有信息
    三】分类-----------保存会话的两种技术
            1》Cookie技术
            2》Session技术
            
                    
        特点:
            1)是一个域对象
            2)每个客户端独享一个域对象。
九、Cookie技术---客户端的技术
    一】概念:每次发送请求时,客户端都会带上各自的不同Cookie到服务端,
                        服务端一解析Cookie,就知道是哪个客户端发过来的信息。
    二】Cookie类
        1)构造函数
            Cookie(String name, String value);
        2)重点函数
            1》关于缓存时间
                void setMaxAge(int s);//设置Cookie存放时间,不设置默认为0s。专业来将,Cookie的默认有效期为一次会话周期。
                int getMaxAge();
            2》获取Cookie对象的名称
                String getName();
            3》关于Cookie对象的值
                String getValue();
                void setVlaue();
            4》获取客户端所有Cookie对象
                Cookie[] request.getCookies();
            5》将Cookie对象存入客户端
                void response.addCookie(Cookie cookie);
            5》关于缓存路径
                void setPath(String uri);
                String getPath();
                
                
                
            
    三】使用Cookie的基本步骤
    存:
        1》创建Cookie对象
        2》设置Cookie对象在客户端的存活时间
        3》将Cookie对象发送到客户端暂存
    取:
        1》取得客户端所有的Cookie
        2》对相应的Cookie对象进行相应的操作
        
    code:

         /*
        //服务端产生Cookie
        Cookie cookie = new Cookie("username","haha");
        //设置Cookie存活时间
        cookie.setMaxAge(1*24*60*60);
        //服务端将Cookie写到客户端暂存
        response.addCookie(cookie);
        */
        
        //取得客户端所有的Cookie
        Cookie[] cookies = request.getCookies();
        Cookie usernameCookie = null;
        if(cookies!=null){
            for(Cookie c : cookies){
                if(c.getName().equals("username")){
                    usernameCookie = c;
                    break;
                }
            }
            //如果找到了Cookie
            if(usernameCookie!=null){
                System.out.println("Cookie的名字:" + usernameCookie.getName());
                System.out.println("Cookie的值:" + usernameCookie.getValue());
                System.out.println("Cookie的生命:" + usernameCookie.getMaxAge());
                System.out.println("Cookie的路径:" + usernameCookie.getPath());
            }
        }
    }

 


        

    四】Cookie应用---显示上次访问时间
        原理:更新某个Cookie,即是向浏览器写一个相同名的Cookie
        注意事项:
            Cookie一定要设置一个有效时间,如果不设置的话,默认该请求访问结束后,
            该Cookie自动销毁。
            即:Cookie的默认有效期为一个有效会话周期。
            
        code:
            long nowTime = System.currentTimeMillis();
            方法一:利用setValue方法
                nameCookie.setValue(nowTime+"");
                nameCookie.setMaxAge(24*60*60);
                response.addCookie(nameCookie);
            方法二:利用构造函数
                Cookie cook = new Cookie("name", nowTime+"");
                cook.setMaxAge(24*60*60);
                response.addCookie(cook);
    五】Cookie应用——删除Cookie
        利用方法
            setMaxAge(0);

posted on 2014-09-19 08:34  SkyGood  阅读(173)  评论(0编辑  收藏  举报