分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

【Web入门系列】初探会话管理-Cookie技术

发布时间:2023-09-06 02:20责任编辑:傅花花关键词:WebCookie

特点

会话数据保存在浏览器客户端。

Cookie技术核心

1、构造Cookie对象

  Cookie(String name, String value)

2、设置cookie

  #设置cookie的有效访问路径

  void setPath(String uri)

  #设置cookie的有效时间

  void setMaxAge(int expiry) : 

  @设置cookie的值

  void setValue(String value) :

3、发送cookie到浏览器端保存

  void response.addCookie(Cookie cookie)

4、服务器接收cookie

  Cookie[] request.getCookies()

Cookie原理

1、服务器创建cookie对象,把会话数据存储到cookie对象中;2、服务器发送cookie信息到浏览器;3、浏览器得到服务器发送的cookie,然后保存在浏览器端。

4、浏览器在下次访问服务器时,会带着cookie信息;5、服务器接收到浏览器带来的cookie信息。

public class CookieServlet extends HttpServlet { ???@Override ???public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????// 1、创建Cookie对象 ???????Cookie cookie = new Cookie("name","ss"); ???????// 2、把cookie数据发送到浏览器(通过响应头发送: set-cookie名称) ???????//response.setHeader("set-cookie", cookie.getName()+"="+cookie.getValue()); ???????//推荐使用这种方法,避免手动发送cookie信息 ???????response.addCookie(cookie); ???}}
public class GetCookieServlet extends HttpServlet { ???@Override ???public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????// 3、接收浏览器发送的cookie信息 ???????Cookie[] cookies = request.getCookies(); ???????if (cookies != null){ ???????????for (Cookie cookie : cookies){ ???????????????String name = cookie.getName(); ???????????????String value = cookie.getValue(); ???????????????System.out.println(name+"="+value); ???????????} ???????} ???}}

Cookie细节

public class CookieServlet extends HttpServlet { ???@Override ???public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ???????// 1、创建Cookie对象 ???????Cookie cookie = new Cookie("name","ss"); ???????/** ????????* 1)设置cookie的有效路径。默认情况:有效路径在当前web应用下。 /myweb ????????*/ ???????//cookie.setPath("/myweb"); ???????/** ????????* 2)设置cookie的有效时间 ????????* 正整数:表示cookie数据保存浏览器的缓存目录(硬盘中),数值表示保存的时间。 ????????* 负整数:表示cookie数据保存浏览器的内存中,浏览器关闭cookie数据丢失。 ????????* 零:表示删除同名的cookie数据 ????????*/ ???????//cookie.setMaxAge(20); ???????//cookie.setMaxAge(-1); ????????//cookie1.setMaxAge(0); ???????????????//2.把cookie数据发送到浏览器(通过响应头发送: set-cookie名称) ???????//response.setHeader("set-cookie", cookie.getName()+"="+cookie.getValue()); ???????//推荐使用这种方法,避免手动发送cookie信息 ???????response.addCookie(cookie); ???}}

注意:Cookie数据类型只能保存非中文字符串类型的。可以保存多个cookie,但是浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,

每个Cookie的大小限制为4KB。

【Web入门系列】初探会话管理-Cookie技术

原文地址:https://www.cnblogs.com/ysdrzp/p/9879745.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved