会话管理技术:Cookie、Session

Cookie :浏览器端的会话管理技术(只能存储String类型的数据)
关于cookie的细节:
如何创建Cookie对象:服务器创建,将cookie携带回服务器

Cookie c = new Cookie(String key, String value);
addCookie(c);

Session :服务器端的会话管理技术(可以存储任意类型的数据)
依赖于 cookie 存在:JsessionId (记录用户会话信息)

会话技术
程序中的会话:打开浏览器---->访问特定的网站(访问服务器)-----> 关闭浏览器

将浏览器华人服务器之间的产生数据,会话!
服务器端会话技术
浏览器端会话技术:cookie:登录
例如:京东(不登录/登录)----->不登录----->将会话数据保存在cookie(加入购物车)
登录----->服务器(session 中)

应用场景:
打开浏览器-----> 访问网站-----> 填写用户登录数据(会话数据)-----> 校验成功-----> 首页,回显示当前的用户名信息-----> 关闭浏览器-----> 直接打开浏览器-----> 访问同一个网站 -----> 直接显示用户信息
访问商品列表 -----> 点击某一个商品-----> 浏览器关闭 ----->下一次进来-----> 商品列表-----> 记录之前访问过的商品数据(图片等)

Cookie :客户端(浏览器端)的存储技术

  1. 服务器端创建Cookie,将cookie数据携带给浏览器
public Cookie(String name, String value)(响应头:setCookie:key=value)
  1. 通过浏览器端将数据存储在缓存区中,(请求头:cookie:key=value)
public void addCookie(Cookie cookie):
将cookie协会浏览器,等待下次将指定 cookie 添加到响应。可以多次调用此方法设置一个以上的 cookie
  1. 返回包含客户端随此请求一起发送的所有 Cookie 对象的数组
public Cookie[] getCookie():
浏览器再次访问的时候,服务器端就可以获取到cookie数据

Cookie的基本使用:

  1. 创建Cookie
  2. 将cookie数据由服务器协会浏览器
  3. 再次将访问服务器,可以获取cookie数据

获取cookie的名称:getName()
获取cookie的内容:getValue()

cookie的细节:(不适合存储私有数据)

  1. cookie内容只能存储String类型的数据
  2. 浏览器端存储cookie的个数有限制:300个,每一个站点可以存储20多个cookie
  3. 有效期问题:
public setMaxAge(int expiry):cookie 的有效期:默认浏览器关闭时,cookie会话结束!
设置 cookie的最大生存时间,以秒为单位。
    参数如果为正整数:超过了当前的值,标识cookie过期了
        0:(清空浏览器记录):直接将cookie会话结束
pubilc void setPath(String uri):设置当前cookie的有效路径
如果存在项目名称:由“/项目名称”开始,到“/rem"结束,如果设置了有效路径

cookie的基本使用

package com.bite.cookie.hello;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值