##Cookie
>饼干. 其实是小数据, 是服务器给客户端,并且存储在客户端上的小数据
### Cookie的使用
* 添加Cookie
//创建cookie Cookie cookie = new Cookie("aa", "bb"); //响应对象中添加cookie信息 response.addCookie(cookie);
* 获取Cookie
Cookie[] cookies = request.getCookies(); if(cookies != null){ for (Cookie c : cookies) { String cookieName = c.getName(); String cookieValue = c.getValue(); System.out.println(cookieName + " = "+ cookieValue); } }
* 常用API
cookie.setMaxAge(expiry); //expiry: 有效 以秒为单位 //正值 : 表示 在这个数字过后,cookie将会失效。 //零:表示立即删除 //负值: 关闭浏览器,那么cookie就失效, 默认值是 -1 //赋值新的值 //cookie.setValue(newValue); //用于指定只有请求了指定的域名,才会带上该cookie cookie.setDomain(".itheima.com"); //只有访问该域名下的cookieDemo的这个路径地址才会带cookie cookie.setPath("/CookieDemo");
### Cookie特点
* 由于Cookie会保存在客户端上,所以有安全隐患问题。 再者Cookie的大小与个数有限制。 为了解决这个问题 ---> Session
##Session
> 会话 , Session是基于Cookie的一种会话机制。 Cookie是服务器返回小数据给客户端,并且存放在客户端上。 Session是,数据存放在服务器端。
* 常用API
//获取Session request.getSession() //session ID String id = session.getId(); //存值 session.setAttribute(name, value); //取值 session.getAttribute(name); //移除指定值 session.removeAttribute(name); //强制无效化,session无对应的ID session.invalidate();
* 创建
> 如果有在servlet里面调用了 request.getSession()
* 销毁
> session 是存放在服务器的内存中的一份数据。 当然可以持久化. Redis . 即使关了浏览器,session也不会销毁。
> 1. 关闭服务器
> 2. session会话时间过期。 有效期过了,默认有效期: 30分钟。