36.javaEE-cookie/session(会话技术)

Cookie

Cookie是通过Set-Cookie响应头和Cookie请求头将会话中产生的数据保存在客户端,是客户端的 技术.
Cookie的API介绍
1、如何创建Cookie对象

Cookie cookie = new Cookie(String name,String value);

– 其中name是cookie的名字, 用来区分cookie
– 其中value是cookie的值, 正是我们要保存的数据。

2、如何将Cookie对象添加到响应中

response.addCookie(Cookie cookie) 

– 将指定的Cookie对象添加到响应中,最后随响应发送给浏览器保存(底层还是通过set-Cookie响应头将Cookie值发送给浏览器)

3、如何获取请求中的Cookie信息

request.getCookies()

– 返回请求中所有的Cookie对象组成的数组,如果请求中没有任何Cookie信息,该方法将会返回null。

4、setMaxAge方法 – 设置Cookie的最大生存时间
(1)如果不设置该方法,Cookie默认是会话级别的Cookie,是保存在浏览器的内存中, 随着浏览器关闭、内存的释放,Cookie也会跟着销毁。
(2)如果设置了该方法,并且是一个有效的时间,Cookie将会以文件的形式保存在浏览器的临时文件夹中。这样即使浏览器关闭,内存释放,保存在硬盘上的cookie文件会一直存在,当浏览器再次开启时,cookie仍然可以获取到。
在这里插入图片描述
5、如何删除Cookie
在Cookie的API中没有提供直接删除Cookie的方法,但我们可以间接删除Cookie
可以向浏览器再发一个同名的Cookie,由于浏览器是根据Cookie的名字(其实还有path、domain,不设置默认相同)来区分一个Cookie的,如果前后发送的两个Cookie名字一致,则浏览器会认为是同一个Cookie,那么后发的Cookie就会覆盖之前发送的Cookie,而后发的Cookie又设置了MaxAge为0,浏览器收到之后也会将后发的Cookie立即删除。
在这里插入图片描述
6、Cookie的常用方法

(1)cookie.getName() – 获取Cookie的名字 (2)cookie.getValue() – 获取Cookie的值
(3)cookie.setValue() – 设置Cookie的值 (4)cookie.setMaxAge() - 设置cookie的最大生存时间

    //刪除cookie,添加一個一模一樣配置的cookie把時間設置為0,覆蓋原來的cookie就刪除cookie了
        Cookie JTDelcookie = new Cookie("JT_TICKET", "");
        //立即刪除
        JTDelcookie.setMaxAge(0);
        //根目录有效
        JTDelcookie.setPath("/");
        //由于单点登录,需要将cookie信息设置为共享数据
        JTDelcookie.setDomain("jt.com");
        response.addCookie(JTDelcookie);

Session

Session是将会话中产生的数据保存在服务端,是服务端的技术.
Session是一个域对象
1、提供的操作域中属性的方法:

setAttribute();
getAttribute();
removeAttribute();

2、生命周期:

(1)创建session:
当第一次调用request.getSession方法时,创建session对象,如果目前在服务器中已经有对应的session此时不会再创建,而是直接返回已有的session
request.getSession();

(2)销毁session:
a) 超时销毁:如果session 30分钟没有被使用,则会超时销毁。
b)自杀:当调用session.invalidate()方法时,将会立即销毁session。
c) 意外身亡:当服务器非正常关闭时,session会立即销毁。
如果服务器正常关闭,session将会以文件的形式保存在服务器的work目录下,这个过程称之为session的钝化. 当服务器再次启动时,钝化着的session还可以再恢复回来,这个过程称之为session的活化!

3、作用范围:整个会话范围内
4、主要功能:在整个会话范围内共享数据

发布了42 篇原创文章 · 获赞 0 · 访问量 647

猜你喜欢

转载自blog.csdn.net/weixin_45449911/article/details/104638698