cookie和session笔记

cookie简单使用:

cookie是服务器发送给浏览器的数据, 浏览器管理所有的cookie.

当一个Servlet在处理响应时, 向客户端发送了cookie, 那么浏览器在下次访问这个

Servlet将带着cookie发送一个请求,Servlet可以使用request.getCookies()方法得到浏览器发送过来的所有

cookie然后检索得到相应的cookie.

cookie由名称,值,过期时间,和路径组成.
 

//一个简单的cookie
Cookie sess = new Cookie("name", "cookie");

 cookie的setMaxAge()方法设置这个cookie保存时间(单位 : 秒),在有效的时间内,浏览器访问时都会带着这个cookie去请求。

setPath()方法设置这个cookie的有效路径, 默认路径是发送这个cookie的Serlvet的路径相同。

//新建一个cookie
Cookie sess = new Cookie("name", "cookie");
//设置cookie的有效时间60秒
sess.setMaxAge(60);
//设置cookie的有效路径
sess.setPath("/servlet_session/");

 使用response.addCookie(Cookie c) 方法将一个cookie添加进响应头.

session的使用

在Servlet中使用session,要调用request.getSession()方法,如果此次会话已经有session那么这个方法会返回已经的创建的session

否则会自动创建一个session对象表示此次会话,request.getSession(boolean b)是一个重载方法,它只是查找已创建的session对象如果没有找到

它不会创建一个session对象。

session的实现是基于cookie的, 每一个session的都有一个id, 调用request.getSession()时,假设现在有一个名子为JSESSIONID的cookie,这个cookie

就保存了当前会话的sessionid浏览器在发送请求时会将这个cookie一起发送给服务器,服务器通过JSESSIONID的值查找session,如果浏览没有发送JSESSIONID cookie时或者JSESSIONID中的值表示的session找不到时request.getSession()方法就会创建一个新的

session对象,并将这个session的id保存在JSESSIONID中, 发送给浏览器.

原文地址:https://www.cnblogs.com/xwgblog/p/3452737.html