cookie,session小结

**web服务器跟踪用户状态的方法:
      *Cookie技术
      *Session技术
      *重写URL
一、Cookie
    *Cookie四大要点
            *Name,value
            *Path
            *Age
            *Domain
    1.Name,Value
        创建cookie时,Cookie c = new Cookie(key,value);
                    c.getName();可以拿到key
                    c.getValue();可以拿到value    
                key,value不能保存中文,如果要保存中文,必须编码.
            *编码:String returnData = URLEncoder.encode(data, "utf-8");
            *解码:String value = URLDecoder.decode(c.getValue(), "utf-8");
    2.Path
        * setPath(String url);默认值为当前servlet所在的目录.
            * 例如:添加cookie的servlet路径为:http://localhost:8080/day10/abc/savaServlet
                    则cookie的路径为:http://localhost:8080/day10/abc
                    说明:所有url为http://localhost:8080/day10/abc 之下的servlet都可以访问到这个cookie.
                    例如,http://localhost:8080/day10/abc/servlet2
                    和http://localhost:8080/day10/abc/ccc/ddd/ss/servlet4 类似的都可以访问.
            * 如果把path设置为http://loclhost/project/ 即到项目名,则此项目中所有servlet都可以访问这个cookie
                    cookie.serPath(request.getContextPath);
            * 如果设置为 "/"  即http://localhost/  则tomcat中运行的项目都可以读取到这个cookie.
                    此设置必须要与domain共同使用才有意义.
    3.setMaxAge(默认值为-1,单位为秒)
        * 如果大于0,表示在客户端硬盘上保存N秒.
        * 如果小于0,表示不把cookie保存在硬盘上(删掉硬盘中的cookie),只存在内存中,当浏览器关闭时,cookie就会消失.
        * 如果等于0, 表示删除客户机上的cookie(无论是在硬盘和内存,统统干掉!).
    4.Domain(域)
        www.sina.com
        www.bbs.sina.com
        www.news.sina.com
        例如在www.sina.com中登录后,进入bbs或者news页面也应该是登录状态的.这就需要这两个页面也能访问到cookie才可以.
        由于这些页面,每一个都是一个站点,要想共享cookie必须先设置path,即cookie.setPath("/");这样他们才都可以访问到,
        但是,服务器中不属于sina的站点不应该访问到这个cookie,因此还需要设置域,即cookie.setDomain(".sina.com");
        这样对使用了sina.com一级域名的所有二级域名都有效.
    5.Cookie的其他一些细节
        W3c规定浏览器只允许存放300个Cookie,一个站点最多可以存放20个Cookie,每个cookie的容量最大为4K.
        由于各个浏览器厂商对Cookie的限制有所变化,所以保存多少个要看浏览器的支持。
        目前一般支持保存50-80个Cookie.每个Cookie大小为8K.可以使用IE测试。
        
一、session
    1.什么是会话?
        用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程为一个会话.
    2.session
        session是把用户的数据写到用户独占的session中(服务器端),通过cookie关联.
        *默认情况下,一个浏览器独占一个session对象.
        *session由服务器创建,默认存在30分钟.
二、URL重写
    IE禁用Cookie后的session处理
    解决方法:URL重写(一般情况选择第二种)
    1.response.encodeRedirectURL(java.lang.String url)
        用于对sendRedirect方法后的url地址进行重写.
    2.response.encodeURL(java.lang.String url)
        用于对表单action和超链接的url地址进行重写.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值