Web 开发会话技术 -Session

简介: Web 开发会话技术 -Session

Web 开发会话技术 -Session


前言


Session技术是用在什么地方?

例如:不同的用户登录网站后,不管该用户浏览该网站哪个页面,都可显示登录名, 还可以随时查看自己购物车中的商品, 是如何实现的


Session介绍


session是什么?


Session 是服务器端技术,可以保存登录用户的信息 , 将数据放入到 Session 中,供用户在访问不同页面时,实现跨页面访问数据, 即存储数据。


session 存储结构


session 相当于容器类似 HashMap,有两列(K-V),每一行就是 session 的一 个属性。

每个属性包含有两个部分,一个是该属性的名字(String),另外一个是它的值(Object)


Sesson 原理示意图


5d1656f9ee394573b2c18b7647ed9fa3.png


session 底层实现机制图解


image.png


使用方法


创建和获取 Session:

HttpSession hs=request.getSession()

如果有Session就直接获取,没有就创建,创建成功后会分配一个SessionID。


向 session 添加属性: hs.setAttribute(String name,Object value);


从 session 得到某个属性 Object obj=hs.getAttribute(String name);


从 session 删除调某个属性: hs.removeAttribute(String name);


每个 Session 都有 1 个唯一标识 Id 值:hs.getId();


session 生命周期


public void setMaxInactiveInterval(int interval) 设置 Session 的超时时间(以秒为单位), 设置正数超过指定的时长,Session 就会被销毁。Tomcat 有一个线程专门检查会话的空闲时间是否超过设定的最大值,超过就销毁此会话。


负数表示永不超时


public int getMaxInactiveInterval()获取 Session 的超时时间


public void invalidate() 让当前 Session 会话立即无效


如果没有调用 setMaxInactiveInterval() 来指定 Session 的生命时长,Tomcat 会以 Session 默认时长为准,Session 默认的超时为 30 分钟, 想要修改可以在 tomcat 的 web.xml 设置。


生命周期指的是 :客户端/浏览器两次请求从关闭到再次打开的间隔时间,不是登录时间的累积时长。

相关文章
|
9天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
87 44
|
5天前
|
存储 安全 搜索推荐
理解Session和Cookie:Java Web开发中的用户状态管理
理解Session和Cookie:Java Web开发中的用户状态管理
18 4
|
5天前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
17 1
|
7天前
|
XML 安全 PHP
PHP与SOAP Web服务开发:基础与进阶教程
本文介绍了PHP与SOAP Web服务的基础和进阶知识,涵盖SOAP的基本概念、PHP中的SoapServer和SoapClient类的使用方法,以及服务端和客户端的开发示例。此外,还探讨了安全性、性能优化等高级主题,帮助开发者掌握更高效的Web服务开发技巧。
|
7天前
|
SQL 负载均衡 安全
安全至上:Web应用防火墙技术深度剖析与实战
【10月更文挑战第29天】在数字化时代,Web应用防火墙(WAF)成为保护Web应用免受攻击的关键技术。本文深入解析WAF的工作原理和核心组件,如Envoy和Coraza,并提供实战指南,涵盖动态加载规则、集成威胁情报、高可用性配置等内容,帮助开发者和安全专家构建更安全的Web环境。
20 1
|
10天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
26 2
|
11天前
|
负载均衡 监控 算法
论负载均衡技术在Web系统中的应用
【11月更文挑战第4天】在当今高并发的互联网环境中,负载均衡技术已经成为提升Web系统性能不可或缺的一环。通过有效地将请求分发到多个服务器上,负载均衡不仅能够提高系统的响应速度和处理能力,还能增强系统的可扩展性和稳定性。本文将结合我参与的一个实际软件项目,从项目概述、负载均衡算法原理以及实际应用三个方面,深入探讨负载均衡技术在Web系统中的应用。
41 2
WK
|
10天前
|
安全 Java 编译器
C++和Java哪个更适合开发web网站
在Web开发领域,C++和Java各具优势。C++以其高性能、低级控制和跨平台性著称,适用于需要高吞吐量和低延迟的场景,如实时交易系统和在线游戏服务器。Java则凭借其跨平台性、丰富的生态系统和强大的安全性,广泛应用于企业级Web开发,如企业管理系统和电子商务平台。选择时需根据项目需求和技术储备综合考虑。
WK
12 0
|
11天前
|
监控 前端开发 JavaScript
前端技术探索:构建高效、可维护的Web应用
【10月更文挑战第23天】前端技术探索:构建高效、可维护的Web应用
30 0
|
12天前
|
JavaScript 前端开发 Java
SpringBoot_web开发-webjars&静态资源映射规则
https://www.91chuli.com/ 举例:jquery前端框架
12 0
下一篇
无影云桌面