JAVA_Session立马过期的问题解决

2024-04-16 16:38

本文主要是介绍JAVA_Session立马过期的问题解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

昨天在用session存取数据的时候发现无论如何都取不到数据。

当我刷新页面的时候,sessionid每次都改变了这是不科学的,因为session默认是30分钟过期。

java取session的代码:

HttpSession session = request.getSession();

这个代码的意思的:这段代码会判断服务器在该客户端是否有session,如果有就取出这个session返回,如果没有就新建一个session返回,也就是无论无何都会取到session。

我建立了两个Sevlet一个来存一个session,一个用来取session的内容,按道理说是没有问题的,但是我测试了很多次就是取不到。

tomcat web.xml文件里面默认配置了session的过期时间时30分钟,按道理来说不会过期的呀。但是我还是怕万一,在我自己的项目web.xml配置了session时间:

<session-config><session-timeout>30</session-timeout>
</session-config>

注:这里可能有人会说可以用代码去设置session的过期时间,但是基本没人这么用,一般都是去配置。所以我这里也不写了。

但是我这么配置了还是不行,百度了很多还是无法解决问题。

我打开火狐的web开发者,去看了响应头,发现set-Cookie 里面的path出问题了,我的项目名中有一个字符是 & ,但是在path里面被翻译成了 % ,然后我再次建了一个工程这个工程名没有特殊字符。session这次没问题。我也可以取到我自己设置了session。

所以如果你遇到session立马过期的问题,并且你的session配置时间是足够的。那么你可以检查一下你的项目名是否有问题啦。

这里再提一个其他的问题,就是session过期时间是30分钟,但是我们关闭了浏览器再次访问就取不到session了。

因为session是基于cookie的只要把cookie持久化就好了,附上代码:

String id = session.getId();//该session对象的编号id
//手动创建一个存储JSESSIONID的Cookie 为该cookie设置持久化时间
Cookie cookie = new Cookie("JSESSIONID",id);
cookie.setPath("/xxxx"); //xxxx表示项目名
cookie.setMaxAge(60*10);

 

这篇关于JAVA_Session立马过期的问题解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/909330

相关文章

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

关于@MapperScan和@ComponentScan的使用问题

《关于@MapperScan和@ComponentScan的使用问题》文章介绍了在使用`@MapperScan`和`@ComponentScan`时可能会遇到的包扫描冲突问题,并提供了解决方法,同时,... 目录@MapperScan和@ComponentScan的使用问题报错如下原因解决办法课外拓展总结@

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学