JSP Cookie的使用

Cookie 不是 JSP 内置对象,而是由 Netscape 公司发明,用来跟踪用户会话(session)的方式。

  Cookie 由服务器生成并发送给浏览器(客户端),浏览器会将其以文本文件的形式存储在某个目录下。

  例如,IE 浏览器把 cookie 信息保存在类似于 C://windows//cookies 的目录下,当用户再次访问某个网站时,服务器就会要求浏览器查找并返回之前发送的 cookie 信息,来识别此用户。

  识别用户通常有以下步骤:

  1、服务器把 cookie 信息发送到浏览器,例如:用户 ID、用户名称等信息。

  2、浏览器在本地存储这些信息。

  3、浏览器再次向服务器发送请求时,它会同时将本地存储的 cookie 信息一同发送给服务器,然后服务器使用这些信息来识别用户或其它。

  cookie 的作用表现在以下方面:

  对特定对象的追踪,如用户的访问次数、最后访问时间等。

  统计网页的浏览次数。

  在 cookie 有效期内,记录用户的登录信息,简化下一次的登录过程。

  实现各种个性化服务,如”最近浏览过的商品“。

  注意:由于 cookie 会将用户的个人信息保存在客户端,如用户名、计算机名、以及浏览和登录的网站等。这些信息可能会包含一些比较敏感的内容,所以从安全角度来说,使用 cookie 存在着一定的风险,因此不建议在 cookie 中保存比较重要或隐私的内容。

  cookie方法

  cookie 常用方法如下:

方法 说明
public void setDomain(String pattern) 设置 cookie 的域名,如 biancheng.net
public String getDomain() 获取 cookie 的域名
public void setMaxAge(int expiry) 设置 cookie 有效期,单位:秒
默认仅在当前会话中存在
public int getMaxAge() 获取 cookie 有效期,单位:秒
默认为 -1,表示 cookie 保存到浏览器关闭为止
public String getName() 返回 cookie 的名称,名称创建后将不能被修改
public void setValue(String newValue) 设置 cookie 的值
public String getValue() 获取 cookie 的值
public void setPath(String uri) 设置 cookie 的路径
默认为当前页面目录以及子目录下的所有 URL 
public String getPath() 获取 cookie 的路径
public void setSecure(boolean flag) 设置 cookie 是否要加密传输
public void setComment(String purpose) 设置 cookie 注释
public String getComment() 返回 cookie 注释,如果 cookie 没有注释,则返回 null

  JSP使用cookie

  JSP 使用 cookie 主要分为以下几个步骤。

  1)创建 cookie 对象

  创建 cookie 对象,name 代表 cookie 的名称,value 表示该名称对应的值,语法如下:

cookie cookie = new cookie(String name,String value);1复制代码类型:[java]

  注意:name 和 value 中不能包含空格和以下字符:

[ ] ( ) = , " / ? @ : ;1复制代码类型:[java]

  2)写入 cookie

  创建 cookie 对象后,调用 response.addCookie() 方法写入 cookie,代码如下:

response.addcookie(cookie);1复制代码类型:[java]

  3)设置 cookie 有效期

  调用 setMaxAge() 方法设置 cookie 的有效期(单位:秒),如将 cookie 有效期设置为 24 小时,代码如下:

cookie.setMaxAge(60*60*24); 1复制代码类型:[java]

  4)读取cookie

  调用 request.getCookies() 方法读取 cookie,该方法返回 HTTP 请求中的 cookie 对象数组,需要通过遍历进行访问。

  session和cookie的区别

  session 和 cookie 的区别如下:

session cookie
将信息保存在服务器 将信息保存在客户端
保存的值是 Object 类型 保存的值是 String 类型
session 存储的数据随会话的结束而结束 cookie 可以长期保存在客户端
安全性高,可以保存重要的信息 安全性低,通常用于保存不重要的信息

  实际开发中,需要根据不同的业务需求来选择采用哪种技术,例如,用户的用户名和密码等敏感信息不能使用 cookie 存储,淘宝购物的”最近浏览过的商品“,则可以使用 cookie 存储在客户端。

(0)

相关推荐