简介
cookie由Netscape公司发明,是最常用的跟踪用户会话的方式。是由服务器端生成并发送给客户端浏览器的,浏览器会将保存为某个目录下的文本文件。(由于cookie会将用户的个人信息保存在客户端,如用户名、浏览过的网站等一些较为敏感的内容会存在一定的风险,所以不建议在cookie中保存比较重要或敏感的内容)
主要作用
1.对特定对象的追踪,如访问者的次数,最后访问时间,路径等。
2.统计网页浏览次数。
3.在cookie有效期内,记录用户登录信息。
4.实现各种个性化服务,如针对不同用户喜好以不同的风格展示不同的内容。
常用方法
方法名称 | 说明 |
void setMaxAge(int expiry) | 设置 cookie 有效期,以秒为单位,默认有效期为当前session的存活时间 |
void setValue(String Value) | 在cookie创建后,为cookie赋予新的值 |
String getName() | 获取cookie的值 |
String getValue() | 获取cookie的名称 |
int getMaxAge() | 获取 cookie 有效期,以秒为单位,默认为-1 ,表明cookie会活到浏览器关闭为止 |
cookie使用
Cookie cookie = new Cookie("name",username);//Cookie cookie = new Cookie("键",“值”);
response.addCookie(cookie);//向客户端添加cookie
response.sendRedirect("success.jsp");//将请求重新定位到success.jsp页面上
cookie.setMaxAge(60);//设置有效期为1分钟
Cookie[] cookies = request.getCookies();//获取cookies的数据(是一个数组)
完整代码(这里用了三个jsp)
可以在图里看到储存在本地的信息(用的谷歌)
cookie与session的对比
1.session作用域是在服务器端保存用户信息,cookie是在客户端保存用户信息
2.session保存的值是Object类型,cookie是String类型
3.session随会话的结束而将其存储的数据销毁,cookie可以长期保存在客户端
4.cookie常用于保存不重要的用户信息,重要的信息使用session作用域保存