JavaWeb篇——深入了解Cookie和Session,了解二者的作用和区别,一篇文章帮你分析透彻!

Cookie

什么是Cookie

Cookie是一种存储在用户计算机上的小型文本文件,用于追踪和存储关于用户在网站上的活动信息。它通常由网站服务器发送给用户的浏览器,然后由浏览器存储。每当用户发送请求时,浏览器会将相应的Cookie发送回服务器,从而提供有关用户的信息。

Cookie的优点包括:

  1. 个性化体验:Cookie可以用于存储用户的个人偏好和设置,以提供个性化的用户体验。
  2. 会话管理:Cookie可以跟踪用户的会话状态,使网站能够记住用户在同一次会话中的操作和活动,如购物车中的商品。
  3. 用户跟踪:Cookie可以用于追踪用户在网站上的活动,如浏览历史和点击行为,以便为用户提供相关的推荐和广告。

然而,Cookie也有一些缺点:

  1. 隐私问题:Cookie存储在用户的计算机上,可能包含个人信息。尽管大多数Cookie是匿名的,但一些Cookie可以被用于跟踪用户的在线行为,引发隐私担忧。
  2. 安全风险:恶意攻击者可以通过盗取Cookie来获取用户的身份信息或进行其他类型的攻击。
  3. 浏览器限制:某些浏览器可能限制或禁用Cookie,从而影响网站的功能和用户体验。

Cookie常见方法

Session

什么是Session

Session是一种在服务器端存储用户会话信息的机制。通常,在用户访问网站时,服务器会创建一个唯一的会话ID,并将该ID存储在用户的浏览器中的Cookie中。服务器端根据这个会话ID来存储和检索与用户会话相关的数据。

Session的优点包括:

  1. 安全性:与Cookie相比,Session存储在服务器端,用户无法直接修改或访问存储在Session中的数据,因此更安全。
  2. 灵活性:Session可以存储更多的数据,并且不受Cookie的大小限制。
  3. 隐私性:Session不直接存储在用户计算机上,可以更好地保护用户隐私。

然而,Session也有一些缺点:

  1. 占用服务器资源:由于Session数据存储在服务器端,服务器需要为每个用户维护会话数据,这可能占用大量的服务器资源。
  2. 扩展性:当用户数量增多时,服务器需要处理更多的会话数据,可能导致性能下降或需要增加服务器负载均衡的管理。
  3. 跨服务器问题:如果使用负载均衡技术将请求分发到多个服务器,那么每个服务器上的会话数据可能不同步,需要额外的处理来确保会话一致性。

Session常用方法

判断是否是新创建的Session

删除Session节点信息

手动和配置文件设置Session会话失效

一、手动删除

二、web.xml配置文件设置ssion会话失效

Session数据的传入和读取

一、传入数据
传入数据用Session.setAttribute方法
1、传入数据

通过session对象传入节点信息
session.setAttribute("name","张三");

我们现在将数据传入了,将来我们还可以直接的对数据进行的读取操作

2、传入对象数据
1、首先创建一个标准的JavaBean

(2)将对象信息传入到Session节点中

二、读取读取单一数据、读取对象数据
1、读取数据

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    req.setCharacterEncoding("utf-8");
    resp.setCharacterEncoding("utf-8");
    //首先得到Session对象
    HttpSession session = req.getSession();

    //通过session得到传入节点的信息
    String name = (String) session.getAttribute("name");
    System.out.println(name);

控制台打印结果:

2、读取对象数据
(1)创建一个对象的JavaBean

(2)获取对象的数据

(3)控制台打印结果

Cookie和Session区别

区别:
Cookie就是相当于浏览器向服务器发出请求时,浏览器响应个给浏览器的一个工作证,那么下一次浏览器再请求这个服务器的时候,就会带着这个出入证(其中包含了一些字符串信息)
Session就是浏览器请求服务器后,浏览会返回给浏览器一个独一无二的SessionId,下一次浏览器再请求服务器的时候,就可以拿着这个id获取到服务器中存的Session信息

Cookie信息是保存在浏览器本地的,而Session信息是保存在服务器上
请求流程图:

至此,关于Cookie和Session的介绍已经完毕,后续还会持续更新,敬请期待!

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
JavaWeb中的CookieSession是用于在服务器和客户端之存储和传递数据的机制。 Cookie是在客户端(浏览器)保存少量数据的文本文件,它由服务器发送给浏览器,并在浏览器下一次向同一服务器发送请求时被浏览器携带过去。Cookie可以用于实现用户认证、记住登录状态、记录用户行为等功能。在JavaWeb中,可以使用`javax.servlet.http.Cookie`类来创建和设置CookieSession是在服务器端存储用户信息的一种机制。当用户第一次访问服务器时,服务器会为该用户创建一个唯一的会话标识(Session ID),并将该标识保存在Cookie中发送给客户端。客户端在后续的请求中会带上这个Session ID,服务器通过这个Session ID可以获取到对应的会话信息。在JavaWeb中,可以使用`javax.servlet.http.HttpSession`类来创建、获取和操作SessionCookieSession区别主要有: 1. 存储位置:Cookie存储在客户端,Session存储在服务器端。 2. 容量限制:Cookie有大小限制,一般为4KB左右;Session可以存储较大量的数据。 3. 安全性:Cookie数据存储在客户端,容易被恶意篡改;Session数据存储在服务器端,相对较安全。 4. 生命周期:Cookie可以设置过期时间,可以长期保存在客户端;Session默认情况下会在一段时间内保持活跃,超过时间会被销毁。 在实际应用中,CookieSession常常结合使用,通过Cookie存储Session ID来实现用户的身份验证和状态管理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Be explorer

若认可笔者文章,手头富裕盼支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值