Session和Cookie

Session

  1. session是servlet的一个域对象,表示一个会话,当结束当前会话(关闭浏览器)则session就失效了。

  1. 当服务端request.getSession()时如果没有Session则会生成一个session和session的唯一id(JsessionID),将这个id保存到Cookie中写到用户浏览器的。

  1. 当用户再次访问服务端时,会携带这cookie中的这个JSESSIONID然后服务端会根据这个id去查找内存中的session。匹配成功就可以使用session服务。

  1. session的唯一id可以使用 request.getSession().getId()获取。

  1. 服务器会将长时间没有活动的session从服务器中清除,Tomcat中session的默认过期时间是30分钟。

  1. Tomcat 7以上的版本中默认禁止客户端脚本读取session Id,需要在context.xml中设置useHttpOnly=”false”,开启权限。

session保存数据

HttpSession session = request.getSession();
session.setAttribute(key,value);//设置值
session.getAttribute(key);//获取值
session.removeAttribute(key);//删除session中的某个值
session.setMaxInactiveInterval(secone) //设置session的过期时间,单位秒
session.invaldate();//销毁session

session的生命周期

  1. session的创建,当服务端第一次调用getSession时创建session

  1. session的销毁,session默认30分钟不用就会自动销毁,也可以手动销毁invaldate()方法销毁session。

Cookie

  1. cookie由服务器创建,并且通过httpServletResponse发送到客户端。

  1. cookie存储键值对,相同的path(路径)、domain(域名)、key只能添加一次,重复添加会替换

  1. cookie会以文件的形式持久化的保存到客户端本地。每次请求都会携带上cookie。

cookie的工作原理

Cookie是基于set-cookie响应头和Cookie请求头工作的

Cookie保存数据

Cookie cookie = new Cookie
httpServletResponse.addCookie(cookie);//添加cookie
Cookie[] cookie = httpServletResponse.getCookies();//得到所有的cookie

cookie的方法

详情

Cookie(key,value)

构造器

setValue()/getValue()

保存数据和设置数据

setMaxAge()/getMaxAge()

设置和得到失效时间,没有设置则cookie是一个会话级别的,在设置一个相同key的cookie过期时间设置为0则可以删除cookie

setPath()/getPath()

设置访问那个路径时携带cookie默认是创建cookie的servlet的所在的路径

setDomain()/getDomain()

设置访问那个域名时携带cookie

setName()

设置cookie的名字

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值