Cookie,Session会话技术

会话技术分为Cookie和Session:

Cookie:数据存储在浏览器客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除cookie

Session:将数据存储到服务器端,安全性相对好,增加服务器的压力

域对象:

域对象就是存储数据的区域(其实就是服务器中一块内存区域)

四个域对象:

Request、ServletContext、Session、PageContext

所有的域对象都有这三个方法:

  1. request.setAttribute("list", list);
  2. request.getAttribute("list");
  3. request.removeAttribute("list");

范围:ServletContext>Session>Request>PageContext

一、Cookie

数据放在浏览器端的技术叫Cookie技术

各类电商网站,通常在用户没有登录时候,购物车信息是存放在Cookie中,如果用户登录了,会把Cookie中购物车信息 同步到服务器的数据库中,是不会放到ServletContext、Session中,因为像ServletContext和Session都是服务器中的一块内存区域是非常宝贵,重启服务器所有的内存区域都会销毁,数据也就没有。

1.1服务器怎么将Cookie设置到浏览器客户端

创建Cookie

Cookie cookie = new Cookie(cookieName, cookieValue);

resp.addCookie(cookie);

Cookie会以响应头的形式发送给浏览器客户端。

Cookie中不能存中文。

1.2服务器怎么接受客户端携带的Cookie

1)通过request获得所有的Cookie:

Cookie[] cookies = request.getCookies();

2)遍历Cookie数组,通过Cookie的名称获得我们想要的Cookie

1.3Cookie在浏览器中保存多长时间?

  1. 默认情况下,当浏览器关闭后,Cookie数据被销毁
  2. 持久化存储:

        cookie.setMaxAge(10 * 60);//保存10分钟

二.Session

Session服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。HttpSession

但客户端需要每次携带一个标识的ID:JSESSIONID去服务器寻找自己的内存空间。

所以说Session技术是基于Cookie技术的,Session需要借助于Cookie存储客户的唯一标识JSESSIONID。

2.1获得Session对象

两中getSession方法:

request.getSession(false)

得到session对象,原来有Session就直接返回,没有返回null

request.getSession(true)

创建或得到session对象,原来有Session就直接返回,没有Session自动创建新的session对象。

默认就是true

2.2怎样向session中存取数据

  1. session.setAttribute(String name,Object obj);
  2. session.getAttribute(String name);
  3. session.removeAttribute(String name);

2.3Session对象的生命周期

3、Session对象的生命周期

创建:第一次执行request.getSession()时创建

销毁:

  1. 服务器关闭时
  2. session过期/失效(默认30分钟)

2.4Session与Cookie的区别

  1. Session存储数据在服务器端,Cookie在客户端
  2. Session没有数据大小限制,Cookie有
  3. Session数据安全,Cookie相对于不安全

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值