日常(Cookie)
2022/4/26 23:13:55
本文主要是介绍日常(Cookie),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#反正听见这个饿了很正常的。
会话:
保存会话过程中产生的数据,在 Servlet 技术中,提供了两个用于保存会话数据的对象, 分别是 Cookie 和 HttpSession。
Cookie 通过在客户端记录信息确定用户身份,HttpSession 通过在 服务器端记录信息确定用户身份。
Cookie:response.setContentType("text/html;charset=utf-8");
<1>Cookie 就是一个键和一个值构成的键值对(一键一值),保存客户端小片段数据。
一般来说:
➢ Cookie 大小上限为 4KB;
➢ 一个服务器最多在客户端浏览器上保存 20 个 Cookie;
➢ 一个浏览器最多保存 300 个 Cookie;
但是由于浏览器行业竞争,有些cookie的大小上限被提高,保存数量也大幅提升。不同浏览器之间不共通cookie数据
<2>Cookie 是通过 HTTP 请求头和响应头在客户端和服务器端传递的。
请求头:Cookie: name1=value1;name2=value2;//以分号间隔断开
响应头:set-Cookie:name1=value1;//一个对象一个set-Cookie;
<3>Cookie 覆盖刷新
cookie是保持一键一值,只要键名一致,值是会不断被刷新覆盖的。
<4>Cookie 的生命周期
生命就是 Cookie 在客户端的有效时 间,可以通过“ setMaxAge(int) ”来设置 Cookie 的有效时间。
1.Cookie.setMaxAge(-1);意味着cookie被设置为默认值,这是cookie的生命只存在于浏览器上,浏览器一旦关闭则,该cookie就会消失
2.Cookie.setMaxAge(0);意味着cookie被销毁作废。
3.Cookie.setMaxAge(60*60*24);意味着cookie被储存在所使用的浏览器所在硬盘里,括号内顺序分别是,秒,分钟....以此类推,总之单位为秒
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String lastAccessTime = null; Cookie[] cookies = request.getCookies(); for (int i = 0; cookies != null && i < cookies.length; i++) { if ("lastAccess".equals(cookies[i].getName())) { // 如果 cookie 的名称为 lastAccess,则获取该 cookie 的值 lastAccessTime = cookies[i].getValue(); break; } } response.setContentType("text/html;charaset=utf-8"); if (lastAccessTime == null) { System.out.println("hello"); response.getWriter().print("hello"); } else { System.out.println("the last" + lastAccessTime); response.getWriter().print("the last" + lastAccessTime); } String currentTime = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss").format(new Date()); Cookie cookie = new Cookie("lastAccess", currentTime); // 创建一个名为 lastAcces cookie.setMaxAge(60); // 设置 Cookie保持时间为1分钟 response.addCookie(cookie); } }
使用response发送Cookie,request获取Cookie
<5>Cookie的路径
1.设置 Cookie 的 path 来指定浏览器在访问什么样的路径时,包含哪一些 Cookie。避免cookie的发送冗余。
2.Cookie的path并不是设置客户端的保存路径,而是由服务器创建 Cookie 时设置,Servlet 的路径作为 Cookie 的默认 path。当浏览器访问服务器某个路径时,需要归还哪些 Cookie 给服务器,这由 Cookie 的 path 决定。浏览器访问服务器的路径,如果包含某个 Cookie 的路径,那么就会归还这个 Cookie。
3.@WebServlet("路径设置")
这篇关于日常(Cookie)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升