- 什么是Cookie?
Cookie是服务器以键值对的方式写在客户端的数据,键值对可以有多个,作用于客户端。
每次服务器创建Session会话时会自动创建Cookie写入客户端
JSESSIONID=B9E05098B14B08A517D24A5511A1B7BE
JSESSIONID是键,B9E05098B14B08A517D24A5511A1B7BE是新建Session的id号
客户端每次发送请求时,服务器根据Cookie的JSESSIONID键的值在服务器内存中寻找相应Session
2. Cookie常用方法
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie cookie=new Cookie("key","value"); //创建Cookie
response.addCookie(cookie); //cookie写入客户端
//修改Cookie,因为是键值对所以直接替换
Cookie cookie1=new Cookie("key","value2");
response.addCookie(cookie1);
Cookie[] cookies=request.getCookies(); //得到客户度Cookie
for (Cookie c:cookies
) {
System.out.println(c.getName()+","+c.getValue());
}
3.管理Cookeie生命周期
setMaxAge(int i)
参数i为正数,表示i秒后删除Cookie
参数i为-1时,表示游览器关闭后删除Cookie(默认)
参数i为0时,表示立即删除Cookie
4.Cookie设置有效路径,只有该路径下的Cookie才会发送给服务器
cookie.setPath("工程路径/abc"); //代表只有访问abc路径才会发送Cookie
5.什么是Session?
Session就是会话,用来维护客户端和服务器关联的一种技术,每个客户端都有一个Session会话,Session会话拥有唯一的id号,客户端的数据存放在Session里面
6.Session常用方法
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession httpSession= request.getSession();
httpSession.setAttribute("key","value");//设置会话域
Object value=httpSession.getAttribute("key");
System.out.println(value);
}
7.管理Session生命周期
setmaxinactiveinterval(int i)过了i秒Sesion自动销毁
getmaxinactiveinterval() 得到Session的超时时间
invalidate()Session会话马上销毁
Session默认的超时时间是30分钟
8.*********重点 Cookie和Session的联系
注意:当Session会话存在的情况下Cookie删除了,那么服务器会因为得不到Cookie的key而找不到对应session的id,而新建Session会话。