关于java中Session的过期问题

问题描述

1。判断一个session是否为空:if(session==null){}这样算不算使用了session?这样问可能不是很清楚,那么详细些。session都有过期时间吧,那么应该是在session被创建的时候就有一个计时器,这个时间达到过期时间的话就销毁这个session如果用这句if(session==null)会不会重置这个计时器?2。可不可以在session过期的时候执行一段代码,即像filter的destroy方法一样?请大家帮帮忙,谢谢,如果上述有什么不对之处,请赐教。

解决方案

解决方案二:
session==null这个肯定不算用了session,你又没对session有任何操作,只是判断了一下.!你要session.invalidate()以后,等到request.getSession(true)的时候才会重置.!session如果失效想执行代码这样判断request.getSession(false)判断它是否为null,如果为null就执行你要的操作
解决方案三:
学习了!一般是判断它是否超时吧!
解决方案四:
可以设置session的时间嘛
解决方案五:
引用2楼super_ninja的回复:

学习了!一般是判断它是否超时吧!

但是,如果它超时了,那么就是null了吧?我个人感觉判断它的时间是否超时和判断是否为空其实是一个意思。还有如果我判断是否超时,那么如何获得session的超时时间?
解决方案六:
1。Session超时,确实变成了NULL,判断是否超时可以用NULL来判断,但是如果在程序中,如果SESSION超时重新创建一个新的SESSION的话,仅用NULL来判断是不够的。2。SESSION在失效之前,可以获取SESSION的创建时间,失效之后,SESSION被销毁,对象都没有了,不可能获取超时时间。再者说,获取超时时间有什么意义么?
解决方案七:
为了避免空指针,建议写成null==session
解决方案八:
引用5楼stl0的回复:

1。Session超时,确实变成了NULL,判断是否超时可以用NULL来判断,但是如果在程序中,如果SESSION超时重新创建一个新的SESSION的话,仅用NULL来判断是不够的。2。SESSION在失效之前,可以获取SESSION的创建时间,失效之后,SESSION被销毁,对象都没有了,不可能获取超时时间。再者说,获取超时时间有什么意义么?

sorry上面我的说法的产生歧义了,我的意思是session在最后一次使用后,不再使用而到期被销毁的这段时间
解决方案九:
引用6楼qqcrazyboy的回复:

为了避免空指针,建议写成null==session

...................无语..==判断跟空指针不挂钩吧.!
解决方案十:
引用7楼ylucke的回复:

引用5楼stl0的回复:1。Session超时,确实变成了NULL,判断是否超时可以用NULL来判断,但是如果在程序中,如果SESSION超时重新创建一个新的SESSION的话,仅用NULL来判断是不够的。2。SESSION在失效之前,可以获取SESSION的创建时间,失效之后,SESSION被销毁,对象都没有了,不可能获取超时时间。再者说,获取超时时间有什么意义么?……

这个貌似没有办法吧.!或者是..我还没用到过这个需求!
解决方案十一:
引用7楼ylucke的回复:

sorry上面我的说法的产生歧义了,我的意思是session在最后一次使用后,不再使用而到期被销毁的这段时间

直接好像取不到的,可以间接来计算获得。session的TIMEOUT时间可以通过getMaxInactiveInterval来去的,session的创建时间可以通过getCreationTime来获取,最后一次session的访问时间可以通过getLastAccessedTime来获取这样的话,到session销毁为止的时间=session的TIMEOUT时间-(最后访问时间-创建时间)
解决方案十二:
session是你在使用中,假如你设置的session失效时间为5S但是你4.9S使用了session,你的session失效时间又变成5S这是他和Cookie的区别COOKIE是设置多长时间后,无论你怎么使用,到时间都会自动失效你也可以强制清楚SESSION设置SESSION时间,你的那个只是判断,并没有使用SESSION所以并没有操作2楼回答很好
解决方案十三:
引用10楼stl0的回复:

引用7楼ylucke的回复:sorry上面我的说法的产生歧义了,我的意思是session在最后一次使用后,不再使用而到期被销毁的这段时间直接好像取不到的,可以间接来计算获得。session的TIMEOUT时间可以通过getMaxInactiveInterval来去的,session的创建时间可以通过getCreationTime来获取,最后一次session……

只有这样辗转下了,,不过这样也是会有问题的.!
解决方案十四:
引用12楼izard999的回复:

引用10楼stl0的回复:引用7楼ylucke的回复:sorry上面我的说法的产生歧义了,我的意思是session在最后一次使用后,不再使用而到期被销毁的这段时间直接好像取不到的,可以间接来计算获得。session的TIMEOUT时间可以通过getMaxInactiveInterval来去的,session的创建时间可以通过getCreationTi……

有什么问题,你也不等待清楚session
解决方案十五:
学习了…………
解决方案:
en!
解决方案:
一个用户长时间不对浏览器中的资源操作,达到session最大时间。session就会销毁!
解决方案:
可不可以在session过期的时候执行一段代码,即像filter的destroy方法一样?创建一个类实现HttpSessionListener接口,在sessionDestroyed(HttpSessionEventse)方法中写你要做的操作
解决方案:
System.out.println(request.getSession().getMaxInactiveInterval());System.out.println(request.getSession().getCreationTime());System.out.println(request.getSession().getLastAccessedTime());分别是:600012997200496251299720060359这以什么为单位呢??秒还是?

时间: 2024-08-04 06:34:52

关于java中Session的过期问题的相关文章

Java中session的过时时间配置,session过时的优先级

1.      在web容器中设置(此处以tomcat为例) 在tomcat-5.0.28\conf\web.xml中设置,以下是tomcat 5.0中的默认配置: [html] view plaincopyprint? <!-- ==================== Default Session Configuration ================= -->     <!-- You can set the default session timeout (in minu

PHP中怎样保持SESSION不过期 原理及方案介绍_php技巧

PHP中如何保持SESSION以及由此引发的一些思考  最近的一个项目,里面有一个比较大的表单,用户完成它需要很多时间,很多用户花了千辛万苦完成之后,一提交发现SESSION过期,系统退出了,所以引起了研究如何设置SESSION以及保持SESSION在线的需要,下面是一些心得体会. 什么是SESSION?按照WIKI的解释,SESSION是存在于两个通信设备间的交互信息,在某一时间建立,经过一定的时间后失效.常见的SESSION有:TCP SESSION.WEB SESSION(HTTP SES

java设置session过期时间的实现方法_java

本文实例讲述了java设置session过期时间的实现方法,分享给大家供大家参考.具体实现方法如下: 1.Timeout in the deployment descriptor (web.xml) 以分钟为单位 复制代码 代码如下: <web-app ...> <session-config> <session-timeout>20</session-timeout> </session-config> </web-app> 上面这

Java中Cookie和Session的那些事儿_java

Cookie和Session都是为了保持用户的访问状态,一方面为了方便业务实现,另一方面为了简化服务端的程序设计,提高访问性能.Cookie是客户端(也就是浏览器端)的技术,设置了Cookie之后,每次访问服务端,请求中都会带上Cookie:Session是服务端技术,在服务端存储用户的访问信息. 使用Cookie传递信息,随着Cookie个数增多和访问量增大,它占用的带宽会越来越大:使用Session保存信息,最大的弱点就是不容易在多台服务器之间共享. 1 Cookie 通俗地讲,当用户使用H

PHP中的session永不过期的解决思路及实现方法

让PHP的session永不过期,你可能没有遇到这么郁闷的问题,但是我遇到过,很郁闷. 我们前期开发了一个只有公司客服人员才能使用的系统--有限的几个客服人员.就是这有限的几个客服人员前几天突然就提出这样的问题:我们每隔很短一段时间 (半个小时不操作页面),正着急解决客户问题的时候,系统却提示需要登录,耽误了客户的时间-- 这很不爽! 客户就是上帝,唯一的上帝.于是上峰要求我们能够实现PHP中的session永不过期,除非我们的客服人员人为的让他过期了.出于安全性的考虑我很不理解这种永不过期的行

几种判断asp.net中session过期方法的比较_实用技巧

方法一:最麻烦也是最容易想到的方法,在每个页面的page_load()方法里面判断: 复制代码 代码如下: protected void Page_Load(object sender, EventArgs e)        {            if (!IsPostBack)            {                if (Session["username"] != null)                {                     //登

java中ajax清除session

问题描述 java中ajax清除session 问题描述:需要做一个退出按钮,点击退出时清空当前用户的session ajax 后台继承的是:SessionAware. 例如 1.用户1登录的时候 session健是用户 1+XXX(唯一) 以此例推 用户1点击退出 用ajax清空他本身的值,不清除其他用户的session值. 2.还是说每个用户登录后即使保存的健一样但是session会生成一个sessionID? 3.如何用ajax怎么把当前的session健传后台清除? java大师解答:

php中session过期时间设置及session回收机制介绍_php技巧

网上很多人给出了解答:修改配置文件中的session.gc_maxlifetime.如果想了解更多session回收机制,继续阅读.(本文环境php5.2) 概述:每一次php请求,会有1/100的概率(默认值)触发"session回收".如果"session回收"发生,那就会检查/tmp/sess_*的文件,如果最后的修改时间到现在超过了1440秒(gc_maxlifetime的值),就将其删除,意味着这些session过期失效. 1. session在端(一般是

jsp中session过期设置及web.xml配置学习_JSP编程

session的过期时间需要配置在tomcat 中的 web.xml 中,时间以分钟计算.另最大时间好像是24小时,就是说,你的session过期时间可以设置成1440,如果设置成1441是无效的.(还没有测试) 复制代码 代码如下: <session-config> <session-timeout>480</session-timeout> </session-config>