cookie的作用:
1.对特定对象的追踪,如访问者的访问次数,最后访问时间,路径等。
2.在cookie有效期内,记录用户登录的信息
3.实现不同用户喜好以不同的风格展示不同的内容
4.使用 cookie 存着一定的风险,因此不建议在cookie中保存比较重要的或敏感的内容.
cookie 的常用方法
方法名称 | 说明 |
viod setMaxAge(int expiry) | 设置cookie的有效期,以秒为单位 |
void setValue(String value) | 在cookie创建后,为cookie赋予新的值 |
String getName() | 获取cookie 的名称 |
String getValue() | 获取 cookie 的值 |
int getMaxAge() | 获取 cookie 的有效时间,以秒为单位 |
1.创建 cookie 对象
Cookie cookie = new Cookie(String name , String value);
在JSP中,通过构造方法Cookie(String name,String value) 创建新的cookie 对象,其中:
name: 用于代表 cookie 的名称
value: 用于表示该名称所对应的值.
2.下面通过俩个示例学习如何使用 cookie 存取数据
实例:
<%
response.addCookie(new Cookie("username","Jack"));
response.addCookie(new Cookie("password","123"));
response.senRedirect("getCookies.jsp");
%>
3.读取·cookie
cookie 是通过 name/value 方式进行保存的,因而在遍历数组的时候,需要通过调用 cookie 对象的getName() 方法对每个数组成员的名称进行检查,直至找到我们需要的 cookie,然后调用 cookie 取得与名称相应的值.
实例:
<%
Cookie[] cookies = request.getCookies();
String user = "";
String pwd = "";
if(cookies != null){
for(int i=0; i< cookies.length; i++){
if(cookies[i].getName().equals("username")){
user = cookies[i].getValue();
}else if(cookies[i].getName().equals("password")){
pwd = cookies[i].getValue();
}
}
}
%>
4.cookie 的有效期
cookie 的有效期 用俗话说就是 客户要访问一个网站 需要输入姓名,密码 cookie 可以记住客户的密码让客户下次登录时 可直接登录 不在需要输入姓名密码,但cookie也是有有效期的 不是永久的 当到达cookie 的有效期后, cookie 回被从客户端删除.
<%
Cookie cookie = new Cookie("info","ok");
cookie.setMaxAge(60);//单位为秒,设置 cookie 有效期时间
response.addCookie(conkie);
response.sendRedirect("showCookie.jsp");
%>
客户端一旦超过 60 秒,退出后,将无法直接访问该网站,需要重新输入一下 姓名,密码.
cookie 与 session 作用域的对比
目前为止,学习了两种存储用户信息的技术session和cookie作用域,但是两者的区别如下:
- session 作用域是在服务器端保存用户信息,cookie是在客户端保存用户信息。
- session 作用域中保存的是Object 类型,cookie保存的是String 类型。
- session 作用域对象随会话结束而关闭,cookie可以长期保存到客户端。
- cookie 通常用于保存不重要的用户信息,重要的信息使用 session 作用域保存。