当前位置: 首页 > news >正文

Cookie Session

  1. Cookie的核心特点
  • 存储位置:保存在客户端(用户的浏览器里)
  • 数据形式:键值对(key=value),比如username=zhangsan
  • 作用:记录用户的简单状态,比如记住登录状态、浏览记录
  • 有效期:可以设置过期时间,默认是浏览器关闭就失效
  • 缺点:数据不安全(用户能看到、修改),大小有限制(一般4KB以内)

2. 项目里的Cookie操作示例

// 1. 创建Cookie
Cookie cookie = new Cookie("username", "zhangsan");
// 2. 设置有效期(单位:秒),这里设为1小时
cookie.setMaxAge(60 * 60);
// 3. 把Cookie发给浏览器
response.addCookie(cookie);// 4. 获取浏览器发来的Cookie
Cookie[] cookies = request.getCookies();
if (cookies != null) {for (Cookie c : cookies) {if ("username".equals(c.getName())) {String username = c.getValue();System.out.println("拿到的用户名:" + username);}}
}// 5. 修改Cookie(同名覆盖即可)
Cookie newCookie = new Cookie("username", "lisi");
newCookie.setMaxAge(60 * 60);
response.addCookie(newCookie);// 6. 删除Cookie(设置有效期为0)
Cookie delCookie = new Cookie("username", "");
delCookie.setMaxAge(0);
response.addCookie(delCookie);

二、Session:服务器里的“用户专属储物柜”

Session就像服务器里给每个用户开的专属储物柜,服务器会给每个用户发一个唯一的“钥匙”(SessionID),用户访问时带着钥匙,就能打开自己的储物柜,存取数据。

1. Session的核心特点

  • 存储位置:保存在服务器端
  • 数据形式:键值对,比如session.setAttribute("user", userObject)
  • 作用:记录用户的登录状态、购物车信息等敏感数据
  • 有效期:默认30分钟不操作就会过期
  • 优点:数据安全,用户看不到,也不能直接修改

2. 项目里的Session操作示例

// 1. 获取Session对象(如果不存在就创建)
HttpSession session = request.getSession();// 2. 存数据(比如登录成功后存用户信息)
User loginUser = new User(1, "zhangsan", "123456");
session.setAttribute("loginUser", loginUser);// 3. 取数据(判断用户是否登录)
User user = (User) session.getAttribute("loginUser");
if (user != null) {System.out.println("用户已登录:" + user.getUsername());
} else {System.out.println("用户未登录");
}// 4. 删除数据
session.removeAttribute("loginUser");// 5. 销毁Session(用户退出登录)
session.invalidate();

三、Cookie 和 Session 的区别

对比项 Cookie Session
存储位置 客户端(浏览器) 服务器端
安全性 低,用户可查看/修改 高,用户无法直接操作
存储大小 有限制(约4KB) 无明显限制
有效期 可设置,浏览器关闭可保留 默认30分钟,超时销毁
主要用途 记住用户名、浏览记录等非敏感信息 登录状态、购物车等敏感数据

四、项目里的实际应用场景

1. 登录状态保持

  • 用户登录成功后,把用户信息存到Session里
  • 每个页面都先判断Session里有没有用户信息,有就说明已登录,没有就跳转到登录页
  • 同时可以给浏览器发一个Cookie,存一个登录标识,下次访问时自动登录(记住我功能)

2. 购物车功能

  • 用户没登录时,购物车数据可以先存在Cookie里
  • 用户登录后,把Cookie里的购物车数据同步到Session里,登录状态下一直有效

五、答辩高频考点(学生版大白话)

  1. Cookie和Session是什么?有什么区别?
    答:Cookie是存在浏览器里的小纸条,Session是服务器里的储物柜。Cookie不安全,Session安全;Cookie大小有限制,Session没有。

  2. Session是怎么和用户对应的?
    答:服务器会给每个用户分配一个唯一的SessionID,存在Cookie里。用户每次访问时,浏览器会把这个SessionID带过去,服务器就能找到对应的Session。

  3. Session超时是什么意思?
    答:用户30分钟不操作,服务器就会销毁这个Session,里面的数据就没了,用户需要重新登录。

  4. 为什么登录功能要用Session?
    答:因为用户信息是敏感数据,不能存在Cookie里让用户看到,Session存在服务器里更安全,也方便管理用户状态。

http://www.jsqmd.com/news/693479/

相关文章:

  • 激光器脉冲宽度控制技术详解:从纳秒到飞秒的调控艺术
  • Lineage2 Protocal - SD
  • 从‘画图’到‘设计’:聊聊AutoCAD Electrical插件如何帮你迈出电气设计自动化的第一步
  • 2026武功山美食探店:老萍巷武功山店实地体验实录 - 资讯焦点
  • 告别命令行:5分钟掌握Another Redis Desktop Manager可视化数据库管理
  • 3大核心优势:MPC Video Renderer如何让DirectShow视频播放焕发新生
  • 从恐龙书习题看面试:操作系统高频考点与解题思路全解析(附第九版答案)
  • 2026最新:西安化妆学校避坑必看!正规院校口碑榜,零基础也能躺赢就业 - 深度智识库
  • 微信小程序预约系统实战指南:从零到商业落地的完整解决方案
  • 5G ISAC多目标跟踪技术:原理与工业应用实践
  • 告别手动装软件!用MDT+ADK给新电脑批量预装Office和Chrome的保姆级教程
  • 2026热门NMN抗衰老产品哪个牌子最好?NMN产品榜单更新推荐,综合评分靠前TOP10品牌 - 资讯焦点
  • 黑龙江地区无缝焊接系统窗厂家综合实力排行盘点 - 资讯焦点
  • 从无人机到扫地机:聊聊机器人‘眼睛’(图像传感器)为什么怕抖?全局快门与卷帘快门选型指南
  • 仅剩180天!ISO/IEC 9899:2026正式生效倒计时,你的代码已通过__attribute__((safe_mem))校验了吗?
  • 福州美容机构如何选?专业与安心,才是变美核心 - 品牌2026
  • 手把手教你用Docker在Ubuntu上部署KMS服务器(避坑指南)
  • Kotlin老手看过来:用你熟悉的Compose UI,30分钟给Android应用加个Desktop版
  • 2026年游乐设备生产厂家深度解析:以专业标准引领行业升级 - 深度智识库
  • 从“神奇开关”到智能家居:双向可控硅在智能灯控、风扇调速里的那些坑与最佳实践
  • # 分区表练好就够了,别动不动就上分库分表
  • STM32H7独立看门狗(IWDG)的窗口模式与低功耗场景实战解析
  • OFD转PDF终极指南:免费开源工具Ofd2Pdf完整使用教程
  • 相亲网站数据预测实战:手把手用Python随机森林模型判断‘见面意愿’(附数据集划分与结果分析避坑指南)
  • 别再乱画了!EPLAN电气制图新手避坑指南:从元件库到端子图的全流程规范
  • 【CSP】CSP-J 2019真题 | 公交换乘 luogu-P5661 (适合GESP四级及以上考生练习)
  • 四强同台!DeepSeek-V4-Pro / GPT-5.5 / GLM-5.1 / MiniMax M2.7 横评:到底该选谁?
  • 从ACPI到udev:拆解Linux内核如何用_UPC和_PLD给你的USB端口‘贴标签’
  • LeRobot机器人学习框架:3大突破让你5分钟从零到真实世界部署
  • 免费终极指南:MPC Video Renderer 5分钟快速上手