JavaWeb中的会话技术Cookie和Session入门

本文介绍了JavaWeb中的会话技术,重点讲解了Cookie和Session的基本概念、工作原理、使用步骤及特点。Cookie是客户端会话技术,数据存储在客户端,而Session是服务器端会话技术,数据存储在服务端。两者在数据存储位置、大小限制和安全性方面存在区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是会话技术?就是两个人说话,你一句我一句,直到有人累了,就不说话了,那么会话结束。
再JavaWeb中也是,会话技术就是当浏览器第一次向服务器请求时,会话建立,包括多次请求和响应,知道某一方断开为止,会话结束。
会话的功能就是为了共享数据的。
客户端会话技术Cookie和服务器会话技术Session。

Cookie:

客户端会话技术,把数据保存到客户端。

  • 使用步骤:
    1. 创建Cookie对象,绑定数据
    * new Cookie(String name, String value)
    2. 发送Cookie对象
    * response.addCookie(Cookie cookie)
    3. 获取Cookie,拿到数据,因为不止一个Cookie,所以返回数组
    * Cookie[] request.getCookies()

Cookie的原理是什么?
基于响应头set-cookie和请求头cookie实现
Cookkie的保存时间
当浏览器被关闭的时候,cookie就被销毁;
如果想长时间保存cookie的话,就要持久化存储,即当创建一个cookie对象后;

  • setMaxAge(int seconds)
    1. 正数:将Cookie数据写到硬盘的文件中。持久化存储。并指定cookie存活时间,时间到后,cookie文件自动失效;
    2. 负数:默认值;
    3. 零:删除cookie信息;

Cookie能不能存在与同一服务器的不同项目?
默认不行,可设置

  • setPath(String path):设置cookie的获取范围。默认情况下,设置当前的虚拟目录;
    * 如果要共享,则可以将path设置为"/";

Cookie的总结:
cookie存储数据在客户端;
浏览器对于单个cookie 的大小有限制(4kb) 以及 对同一个域名下的总cookie数量也有限制(20个) ;

Session:

服务器会话技术,将数据存储在服务端。
1. 获取HttpSession对象:
HttpSession session = request.getSession();
2. 使用HttpSession对象:
Object getAttribute(String name)
void setAttribute(String name, Object value)
void removeAttribute(String name)

session的原理是基于cookie的。
如果客户端关闭,服务器不关闭,两次获取的session是不同的,可以通过设置cookie来保证session相同,因为session的原理就是cookie

 Cookie cookie = new Cookie("JSESSIONID", session.getId());
        cookie.setMaxAge(60 * 60);
        response.addCookie(cookie);

session的特点
1. session用于存储一次会话的多次请求的数据,存在服务器端
2. session可以存储任意类型,任意大小的数据

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值