`

如何控制session过期时间

阅读更多
在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户没有使用系统一定时间

后,自动退出登录,销毁session。

具体设置很简单:
在主页面或者公共页面中加入:session.setMaxInactiveInterval(900);
参数900单位是秒,即在没有活动15分钟后,session将失效。
这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果是在调试程

序,应该是修改服务器端时间来测试,而不是客户端。

在一般系统中,也可能需要在session失效后做一些操作,
(1)控制用户数,当session失效后,系统的用户数减少一个等,控制用户数在一定范围内,确保

系统的性能。
(2)控制一个用户多次登录,当session有效时,如果相同用户登录,就提示已经登录了,当

session失效后,就可以不用提示,直接登录了

那么如何在session失效后,进行一系列的操作呢?
这里就需要用到监听器了,即当session因为各种原因失效后,监听器就可以监听到,然后执行监

听器中定义好的程序,就可以了。
监听器类为:HttpSessionListener类,有sessionCreated和sessionDestroyed两个方法

自己可以继承这个类,然后分别实现。
sessionCreated指在session创建时执行的方法
sessionDestroyed指在session失效时执行的方法
给一个简单的例子:
public class SessionListener implements HttpSessionListener{

public void sessionCreated(HttpSessionEvent event) {
HttpSession ses = event.getSession();
String id=ses.getId()+ses.getCreationTime();
SummerConstant.UserMap.put(id, Boolean.TRUE); //添加用户
}

public void sessionDestroyed(HttpSessionEvent event) {
HttpSession ses = event.getSession();
String id=ses.getId()+ses.getCreationTime();
synchronized (this) {
SummerConstant.USERNUM--; //用户数减一
SummerConstant.UserMap.remove(id); //从用户组中移除掉,用户组为一个map
}
}
}

然后只需要把这个监听器在web.xml中声明就可以了
例如:

com.summer.kernel.tools.SessionListener



补充:
具体设置很简单,方法有三种:
(1)在主页面或者公共页面中加入:session.setMaxInactiveInterval(900);
参数900单位是秒,即在没有活动15分钟后,session将失效。设置为-1将永不关闭。
这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果是在调试程

序,应该是修改服务器端时间来测试,而不是客户端。
(2)也是比较通用的设置session失效时间的方法,就是在项目的web.xml中设置
15
这里的15也就是15分钟失效.
(3)直接在应用服务器中设置,如果是tomcat,可以在tomcat目录下conf/web.xml中
找到元素,tomcat默认设置是30分钟,只要修改这个值就可以了。

需要注意的是如果上述三个地方如果都设置了,有个优先级的问题,从高到低:
(1)--(2)---(3)



分享到:
评论

相关推荐

    在ASP.NET中,设置Session的过期时间的方法

    方法一:  在后台应用程序中设置:Session.Timeout = 1;  注意:1、此方法可以设置在一个... 您可能感兴趣的文章:php 如何设置一个严格控制过期时间的sessionjava设置session过期时间的实现方法php中实现精确设置se

    php中精确控制session超时时间

    php中会话超时时间不易控制,多种因素影响导致随机性太大;文档介绍如果严格控制php中SESSION过期时间

    php 如何设置一个严格控制过期时间的session

    可以修改php.ini的session.gc_maxlifetime来设置session的生命周期,但并不能保证在超过这一时间后session信息立即会删除。因为GC是按机率启动的,可能在某一个长时间内都没有被启动。那么大量的session在超过...

    PHP session垃圾回收机制实例分析

    session过期时间 在php.ini文件中有这样一个配置,这个配置表示session文件过期时间,默认的话是1440秒,也就是24分钟,这个24分钟是session的发呆时间,如果在24分钟内没有对session进行操作,那么session文件就会...

    enhanced-web-storage:具有 env 支持、过期时间控制、更改回调和 LRU 存储清除策略的增强型 Web 存储

    具有 env 支持、过期时间控制、更改回调和 LRU 存储清除策略的增强型 Web 存储。 如何开始 import CustomStorage from 'enhanced-web-storage' // obtain a CustomStorage instance const storage = new ...

    JSP实例编程100例

    59、session有效时间的设置与取得 60、session时间与ID 61、Cookie有效时间的设置 62、利用隐藏字段传送数据 63、JSP 使用 JavaBean 的方法 64、JSP 使用 JavaBean 65、范围为 Page 的 JavaBean范例程序 66、范围为 ...

    ASP.NET LayUI权限管理系统源码

    1、token具有绝对时间性,过期必定失效,而且到一定时间自动更新成新token,过渡旧token。 2、经典三层架构,BLL层负责各类逻辑判断(包括获取参数,手机浏览器和PC端,外带try异常捕捉)。 3、数据库操作采用ADO...

    Cookie 小记

    Session是存在服务器端,通用程序可以控制,可是Cookie是存在独立的电脑里,无法将其直接移除(物理删除)。但是可以通过浏览器来删除, 当浏览器检测到cookie过期时间已经超出范围,则不再加载此cookie信息。标志...

    JAP编程学习100例

    59、session有效时间的设置与取得 60、session时间与ID 61、Cookie有效时间的设置 62、利用隐藏字段传送数据 63、JSP 使用 JavaBean 的方法 64、JSP 使用 JavaBean 65、范围为 Page 的 JavaBean范例程序 66、范围为 ...

    微信OAuth2.0网页授权接口PHP版用法示例.rar

     对于同一用户在受权过期时间内多次打开此控制器的页面,将不会进行多次受权,因为其受权信息记录在session中,以免重复受权,减慢访问速度。受权过期时间在```index/Conf/config.php```中```wx_webauth_expire```...

    通用类Gen V3.0使用手册

    这个文件包含了四个基础类,同时设置了是否调试、Application前缀、Application过期时间、Session前缀、数据库连接等,还包含了一个Finish方法用于释放所有对象。 由于VBS的类不支持静态方法,所以四个基础类都声明...

    ASP.NET权限管理系统源码

    1、token具有绝对时间性,过期必定失效,而且到一定时间自动更新成新token,过渡旧token。 2、经典三层架构,BLL层负责各类逻辑判断(包括获取参数,手机浏览器和PC端,外带try异常捕捉)。 3、数据库操作采用ADO...

    微信OAuth2.0网页授权接口

    对于同一用户在受权过期时间内多次打开此控制器的页面,将不会进行多次受权,因为其受权信息记录在session中,以免重复受权,减慢访问速度。受权过期时间在index/Conf/config.php中wx_webauth_expire设置,建议不要...

    php商城系统 v3.0 rc6.rar

    /*session过期时间*/ 若没有增加一行 调整 清除缓存的设置 合并模板缓存的删除功能 调整 网站皮肤的管理权限归创始人拥有 即时非创始人拥有下载、上传、备份权限也不能使用 完善 订单的逻辑处理 完善 订单 操作...

    sinatra基本会话实验室v-000

    确保在app.rb启用会话并设置session_secret 。 设置一个控制器动作,该动作响应对路由'/'的GET请求。 您需要此操作来呈现erb文件index.erb 。 index.erb应包含带有文本字段的表单。 在这里,用户将输入要购买的物品...

    PHP网络编程技术与实践 源码

    3.2.2 设定文件的过期时间 3.2.3 用户认证 3.2.4 设置页面的状态 3.2.5 设置输出文件的类别 3.3 表单的处理 3.3.1 表单的显示 3.3.2 处理表单 3.4 获取系统预定义变量和服务器信息 3.4.1 服务器变量:$_SERVER 3.4.2...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例255 控制登录用户的过期时间 334 实例256 自动登录 335 实例257 单击登录 336 实例258 统计用户在线时间 339 实例259 限制用户访问网站的时间 340 实例260 用户来访时客户端创建COOKIE 341 实例261 删除客户端的...

Global site tag (gtag.js) - Google Analytics