java EE之cookie和session

1.cookie

cookie可以将少量信息通过servlet发给web浏览器,并保存在浏览器端,当服务器需要时再传给服务器。cookie的值可以唯一的标志客户端,因此cookie常被用来做会话管理。用于存储会话过程中产生的数据。

当在服务器端获取cookie后,进行请求/回应时,请求/响应头会自动添加cookie/set-cookie

2.cookie的特性

name
value
path  :默认就是当前访问的这个Servlet的路径  
maxAge   如果为0就删除

3.如何使用

服务器写cookie给浏览器

Cookie cookie=new Cookie();

response.addCookie("name","value");

响应头:set-cookie:name=value

服务器得到浏览器发来的cookie

Cookie[] cookies=request.getCookies();

请求头:cookie:name=value;

4.cookie文件中数据存储的格式

  showTime  1421718610521     localhost    /day09_00_showtime/servlet/
  name             value     domain           path

能被访问的URL的特点:

      Cookie 能被访问要符合:MYURL.startWith(domain+path)完全匹配   然后再找name也匹配,此时才能访问到value

如:

http://localhost:8080/day09_00_showtime/servlet/abc/ShowTimeServletDemo5  //给
http://localhost:8080/day10_00_cookie/servlet/ShowTimeServlet  //不给
http://localhost:8080//day09_00_showtime/ShowTimeServlet    //不给
给不给服务器传cookie是由浏览器决定的,取决于domain+path+name是否匹配



session部分:

1.特点

存在服务器上,先是服务器产生一个Session对象,并在session对象中分配一个唯一的id,通过http协议响应头发送一个Set-Cookie:JSESSIONID=id号给浏览器,以后浏览器发送数据时就通过Cookie:JSESSIONID=id号

2.如何获取session

//这两种方法是一样的,先判断有没有,有直接返回,没有创建一个新的
  HttpSession session =  request.getSession();
  HttpSession session = request.getSession(true);

  HttpSession session = request.getSession(false);//
如果有就返回,没有的话返回null,

3.实现原理

 跟Cookie一样,只不过不发数据,发一个JSessionId的号码(当session创建以后会将产生的jsessionID响应给浏览器)
 如果浏览器发送的JSessionId与服务器的JSessionId一样,说明是同一个Session,数据
 此时就存在这个Session中

 Set-cookie:JSESSIONID=23354354543543   响应头
 cookie:JSESSIONID=23354354543543       请求头

Session只与浏览器有关.

4.用Session就是把它当成一个域对象来用   (就是一次会话过程)
内部维护了一个Map集合 
 setAttribute("key",Object);
 Object value = getAttribute(key);
removeAttribute(key);

存活时间:30分钟(空闲的)会销毁(Tomcat配置文件中有)
session.invalidate();//强制销毁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天进步一点_点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值