一文了解Session(1)

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import java.io.IOException;

public class SessionServlet extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//存储到session中

//1、获取session对象

HttpSession session=req.getSession();

//存储数据

session.setAttribute(“username”,“root”);

}

}

public class SessionServlet1 extends HttpServlet {

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//获取数据。从session中

//1获取session对象

HttpSession session=req.getSession();

//获取数据

Object username=session.getAttribute(“username”);

System.out.println(“获取到的session值为”+username);

}

web.xml配置两个类的访问地址

SessionServlet1

com.SessionServlet1

SessionServlet1

/sessionServlet1

SessionServlet

com.SessionServlet

SessionServlet

/sessionServlet

先访问①后访问②运行得

Session原理

==========

Session是基于Cookie实现的

获取的对象有唯一的标识id的,tomcat把session的id当成cookie发送给浏览器,tomcat在响应是会加上set-cookie这个响应头JSESSIONID=值存储到浏览器内存中,第二次获取时就会去内存中寻找有无id为之前的,有就直接用那数据,没有就创建

Session使用细节


Session钝化、活化

服务器重启,Session中的数据还会存在?

钝化:在服务器正常关闭后,Tomcat会自动将Session数据写入硬盘文件中

活化:在次启动服务器后,从文件中加载数据到Session中

Session销毁:

①默认情况下,无操作30分钟后自动销毁(下列单位分钟)

30

②调用Session对象的invalidate()方法

浏览器一关,session就销毁了,因为session是通过cookie传输

小结

==

Cookie和Session都是来完成一次会话内多次请求间数据共享的

区别:


存储位置:Cookie是将数据存储在客户端,Session将数据储存在服务器

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

在分布式系统中,确保session和token的安全性与一致性是构建可靠应用的关键。首先,我们需要了解这些机制的工作原理和面临的挑战。根据《深入解析:Cookie、Session与Token的工作机制》一文session通常依赖于服务器存储会话信息,并通过sessionID来标识用户的会话状态。这种方式在分布式环境中可能会遇到同步问题,因为不同的服务器可能无法即时共享同一个用户的会话数据。 参考资源链接:[深入解析:Cookie、Session与Token的工作机制](https://wenku.youkuaiyun.com/doc/6412b4bcbe7fbd1778d40a45) 对于token,尤其是JWT这样的令牌,由于它们是无状态的,可以更容易地在分布式系统中管理。然而,令牌的签发、验证、刷新和撤销都是需要精细处理的安全点。推荐使用专门的中间件或服务来处理token,例如使用OAuth 2.0和OpenID Connect协议来管理用户认证和授权。 为了在分布式系统中保持一致性和安全性,可以采取以下措施: 1. 使用持久化存储(如数据库或分布式缓存系统Memcached)来共享session数据,确保各服务器节点访问的是统一的会话状态。 2. 对于token,采用集中式令牌管理器,或引入第三方服务如Keycloak或Auth0进行令牌的生成、存储和验证。 3. 实现token刷新机制,以减少被盗用的风险。例如,对于JWT,可以设计过期时间较短的访问令牌,并通过刷新令牌来获取新的访问令牌。 4. 使用HTTPS等加密通信协议,保护数据在传输过程中的安全。 5. 对于敏感操作,使用如JSON Web Token中的签名或加密算法,确保令牌内容的安全性。 6. 实施跨站请求伪造(CSRF)和跨站脚本(XSS)的防护措施,避免令牌被恶意利用。 综上所述,通过了解这些机制的工作原理和采取适当的策略,可以在分布式系统中有效地管理session和token,从而确保会话的安全性和一致性。《深入解析:Cookie、Session与Token的工作机制》一文提供了深入的技术讲解,是理解这些概念和实现方法的宝贵资源。 参考资源链接:[深入解析:Cookie、Session与Token的工作机制](https://wenku.youkuaiyun.com/doc/6412b4bcbe7fbd1778d40a45)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值