JavaWeb学习5_27_session和cookie

一、Session

1.基本介绍

        session是属于B/S结构的会话机制,其相应的Java对象HttpSession是由服务器创建的,一次会话大致可描述为打开浏览器,进行一系列操作,关闭浏览器。session的主要作用是保存会话状态(用户登录成功,session可以保留这种状态)。为什么需要使用session呢?因为HTTP协议是无状态协议,B和S的连接是间断的。

注:session存储信息在服务器端

2.在程序中如何使用session

HttpSession session = request.getSession();//获取Session对象,若获取不到则新建,若参数为false,则不新建
session.setAttribute("num",1);//向Session对象存入数据
System.out.println("num="+session.getAttribute("num"));//取出数据并打印
session.removeAttribute("num");//移除session中的数据

3.session运行流程

(1)用户发送第一次请求时,服务器会创建一个新的Session对象,同时给Session对象生成一个SessionID,之后服务器将SessionID发送给浏览器,浏览器会将这个SessionID存入缓存中。

 注:第一次发送请求,服务器会设置SessionID并响应给浏览器

(2)用户第二次发送请求时,浏览器会将存储在缓存中的SessionID发送给服务器,服务器会通过这个ID找到对应的session对象。

 4.session对象的销毁

(1)超时销毁:超过一定时间没有对服务器中的Session对象进行操作,Session对象会被销毁。

(2)手动销毁(各个网站的安全退出功能)

session.invalidate();//销毁session对象

二、cookie

1.基本介绍

        cookie也是为了保存会话状态而被使用的,其数据保存在浏览器客户端或者运行内存中。

2.cookie的规定

        HTTP协议规定,任何一个cookie都是由name与value组成的,name与value都是字符串类型,当浏览器发送请求时,会自动携带该path下的cookie数据给浏览器

3.cookie的使用

Cookie cookie = new Cookie("num","2");//向cookie中添加数据
response.addCookie(cookie);//在响应中加入cookie
Cookie[] cookies = request.getCookies();//接收cookie中的数据
for(Cookie tmp:cookies){//遍历cookie数组
    System.out.println(tmp.getName()+"="+tmp.getValue());
}

4.cookie的有效时间

        若不调用setMaxAge(),cookie将数据保存在浏览器内存中,浏览器关闭,cookie消失,若设置setMaxAge()参数为正,则cookie会将数据保存在内存文件中,浏览器关闭,cookie依然存在。

cookie.setMaxAge(60*60);//>0,有效时间设定,单位:秒
cookie.setMaxAge(-1);//<0,相当于不调用setMaxAge()
cookie.setMaxAge(0);//=0,删除cookie

5.cookie的路径

 cookie.setPath("/lpx");//表示只要根路径是lpx的请求,都会提交此cookie给服务器

三、两者异同

  相同点:(1)session机制和cookie机制都是为了保存会话状态(因为HTTP协议是无状态协议)

                 (2)cookie和session都是用来跟踪浏览器用户身份的会话方式。

  不同点:(1)session保存数据在服务器端,cookie保存数据在浏览器客户端或运行内存中。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LpppX

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

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

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

打赏作者

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

抵扣说明:

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

余额充值