Cookie和Session的特点和常用方法

来源:互联网 发布:哪里可以找到数据 编辑:程序博客网 时间:2024/04/26 04:51

一、两者的特点

  • 会话数据放在浏览器端,数据类型只能string,而且有大小限制的,相对数据存放不安全。

  • cookie的数据类型一定是字符串,如果要发送中文,必须先对中文进行URL加密才可以发送。

  • setPath(path): 修改cookie所在的有效路径。 如果把该cookie设置到某个有效路径下,然后当浏览器访问这个有效路径的时候,才会携带cookie数据给服务器。

  • setMaxAge(整数) : 设置cookie的有效时间

    正整数: 表示超过了正整数的数值的时间,cookie就会丢失!!(cookie保存浏览器的缓存目录)单位:秒负整数: 表示如果浏览器关闭了,cookie就会丢失!(cookie保存浏览器内存) 0    : 表示删除同名的cookie    
  • cookie可以有多个,但是浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。

2.session中应注意的细节

  • 会话数据放在服务器端(服务器内存),占用服务器资源,数据类型任意类型,没有大小限制的,相对安全

  • session的原理
    1)服务器创建Session对象,服务器会给这个session对象分配一个唯一的标记JSESSIONID
    2)把JSESSIONID作为Cookie发送给浏览器
    3)浏览器得到JSESSIONID保存下来,在下次访问时携带这个JSESSIONID去访问服务器
    4)服务器得到JSESSIONID,在服务器内存中搜索是否存在指定JSSESSINOID的session对象,
    5)如果找到,则返回这个session对象
    6)如果找不到,可能直接返回null,或者再创建新的session对象。
    HttpSession session = request.getSession();

二、两者常用的方法

1.cookie常用的方法

  • 创建Cookie对象,用于存储会话数据
    new Cookie(java.lang.String name, java.lang.String value)

  • 修改Cookie对象
    void setPath(java.lang.String uri)
    void setMaxAge(int expiry)
    void setValue(java.lang.String newValue)

  • 把cookie数据发送给浏览器保存
    response.addCookie(cookie);

  • 服务器接收cookie信息
    request.getCookies();

2.session常用的方法

  • 创建HttpSession对象,用于保存会话数据
    session = request.getSession(); //创建或获取session对象

  • 修改HttpSession对象
    void setMaxInactiveInterval(int interval) //设置session对象的有效时间
    void invalidate() //手动销毁session对象

  • 保存会话数据(作为域对象)
    session.setAttribute("name",Object); //保存数据
    session.getAttribute("name") //获取数据
    session.removeAttribute("name") //删除数据

0 0
原创粉丝点击