会话技术Cookie&Session
1、会话技术概述
从打开浏览器访问某个站点,到关闭这个浏览器的整个过程,称为一次会话。会话技术用于记录本次会话中客户端的状态与数据。
会话技术分为Cookie和Session:
- Cookie:数据存储在客户端,减少服务器端的压力,安全性不好,客户端可以清除Cookie
- Session:将数据存储到服务器端,安全性相对好,增加了服务器端的压力
2、Cookie技术
服务器端向客户端发送Cookie信息:
- 创建Cookie:Cookie cookie = new Cookie(String cookieName, String cookieValue); Cookie中不能设置中文
- 设置Cookie在客户端的持久化时间:cookie.setMaxAge(int seconds); 不设置持久化时间,cookie信息被存储在浏览器内存中,浏览器关闭时,cookie信息销毁,当设置了持久化时间时,cookie信息会被持久化到硬盘上,过期浏览器自动删除该cookie。
- 设置cookie的携带路径:cookie.setPath(String path),不设置时,该cookie信息会在访问该cookie的web资源所在的路径都携带cookie信息
- 向客户端发送cookie:response.add(String cookie);
- 删除客户端cookie:设置同名同路径的持久化时间为0的cookie进行覆盖
服务器端接受客户端携带的Cookie:
- 获得cookie:Cookie[] cookies = response.getCookies();
- 取得指定名字的cookie:
1 for(Cookie cookie : cookies){ 2 if(cookie.getName().equal(cookieName)){ 3 String cookieValue = cookie.getValue(); 4 } 5 }
3、Session技术
获得Session对象:HttpSession session = request.getSession();
用于获取当前会话的Session对象,如果服务器端没有该Session对象会创建一个新的Session返回,如果有直接去得该Session对象返回。
向Session中存取数据
session.setAttribute(String name, Object obj);
session.getAttribute(String name);
session.removeAttribute(String name);
Session对象的生命周期
销毁:服务器非正常关闭或session过期(session默认30分钟,从不开始操作服务器端开始),手动销毁,session.invalidate();
作用范围:默认在一次会话中
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现