详谈Java设置session超时(失效)的时间

详谈Java设置session超时(失效)的时间

免费学习推荐:java基础教程

在一般系统登录后,都会设置一个当前session失效的时间,以确保在用户长时间不与服务器交互,自动退出登录,销毁session
具体设置的方法有三种:
1.在web容器中设置(以tomcat为例)
在tomcat-7.0confweb.xml中设置,以下是tomcat7.0中默认配置:

    30

登录后复制

tomcat默认session超时时间为30分钟,可以根据需要修改,负数或0为不限制session失效时间

这里要注意这个session设置的时间是根据服务器来计算的,而不是客户端。所以如果在调试程序,应该是修改服务器端时间来测试,而不是客户端

2.在工程的web.xml中设置

立即学习“Java免费学习笔记(深入)”;

    15

登录后复制

这里的15是指15分钟失效

3.通过java代码设置

session.setMaxInactiveInterval(30*60);//以秒为单位,即在没有活动30分钟后,session将失效

登录后复制

三种方式优先等级:1

在一般系统中,也可能需要在session失效后做一些操作:
1.控制用户数,当session失效后,系统的用户数减少一个,控制用户数量在一定范围内,确保系统的性能
2.控制一个用户多次登录,当session有效时,如果相同用户登录,就提示已经登录了,当session失效后,就可以不同提示,直接登录
那么如何在session失效后,进行一系列的操作呢?
这里就需要用到监听器了,即当session因为各种原因失效后,监听器就可以监听到,然后执行监听器中定义好的程序就可以了
监听器类为:HttpSessionListener类,有sessionCreated和sessionDestroyed两个方法
自己可以继承这个类,然后分别实现
sessionCreated指在session创建时执行的方法
sessionDestroyed指在session失效时执行的方法
例子:

public class OnlineUserListener implements HttpSessionListener{    public void sessionCreated(HttpSessionEvent event){        HttpSession session=event.getSession;        String id=session.getId()+session.getCreationTime();        SummerConstant.UserMap.put(id,Boolean.TRUE);//添加用户    }        public void sessionDestroyed(HttpSessionEvent event){        HttpSession session=event.getSession;        String id=session.getId()+session.getCreationTime();        synchronized(this){            SummerConstant.USERNum--;//用户数减-            SummerConstant.UserMap.remove(id);//从用户组中移除掉,用户组为一个map        }    }}

登录后复制

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

    com.demo.OnlineUserListener

登录后复制

相关学习推荐:java基础

以上就是详谈Java设置session超时(失效)的时间的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2604224.html

(0)
上一篇 2025年3月6日 19:49:22
下一篇 2025年2月18日 01:40:18

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 简单介绍Java Servlet程序

    本篇文章给大家带来了关于java的相关知识,其中主要整理了servlet的相关问题,servlet运行在服务端(tomcat)的java程序。是sun公司的一套规范,就是动态资源,用来接收客户端的请求,处理请求,响应给浏览器的动态资源,下面…

    2025年3月6日 编程技术
    200
  • Java Web动态网站开发教程

    一、Tomcat安装 下载网址:http://archive.apache.org/dist/tomcat/         tomcat版本:64位 8.5.31 立即学习“Java免费学习笔记(深入)”;         2.Tomca…

    2025年3月6日 编程技术
    200
  • java开发是前端还是后端

    java开发是后端,不是前端;java是一门面向对象的编程语言,也是最常见的后端开发语言之一,后端主要是让服务器、应用、数据库能够彼此交互,需要考虑如何实现功能、数据的存取、平台的稳定性与性能等,常用的脚本语言有php、java、pytho…

    2025年3月6日
    200
  • spring boot框架特点是什么

    特点是:1、可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;2、使用嵌入式的Servlet容器(例Tomcat、Jetty等),应用无需打成WAR包;3、提供starter简化…

    2025年3月6日
    200
  • 一起聊聊怎么使用Nginx部署TienChin项目

    本篇文章就来手把手教小伙伴们部署 tienchin 项目,一起把这个项目跑起来,看看到底是个什么样的项目。 小伙伴们知道,对于这种前后端分离的项目,我们在实际部署的时候,可以按照前后端分离的方式来部署,也可以按照前后端不分的方式来部署。接下…

    2025年3月6日 编程技术
    200
  • 怎么使用Java IO流和网络制作一个简单的图片爬虫

    Java IO流和网络的简单应用 最近看到了 url 类的用法,简单的做了一个java 版的爬虫。发现还挺有趣的,就拿出来分享一下。通过关键字爬取百度图片,这个和我们使用搜索引擎搜索百度图片是一样的,只是通过爬虫可以学习技术的使用。(这个程…

    2025年3月6日 编程技术
    200
  • 宝塔面板怎么部署java项目

    1、安装Java项目管理器,在宝塔面板的软件商店,我们输入“Java”,注意第一个字母一定要大写。 2、单击,操作中的“安装”,然后点“确定”按钮。安装过程是非常快的,安装成功后,让它首页显示。 3、单击设置操作,在Java项目管理器中的版…

    2025年3月6日
    200
  • Java多线程的使用及实现方法

    1、应用场景 (1)普通浏览器和网络服务(现在写的网络是帮你完成线程控制的中间部件),网络处理请求,各种专用服务器(比如游戏服务器) (2)servlet多线程。 (3)FTP下载,多线程操作文件。 (4)数据库中使用的多线程。 (5)to…

    编程技术 2025年3月6日
    200
  • Java类加载器与类加载过程的概述

    1. 类加载过程 加载 通过类的全限定名(包名 + 类名),获取到类的.class文件,加载到元空间。 链接 验证:检验.class文件的安全性 准备:为静态类型变量分配内存并设置默认值 解析:将常量池内的符号引用转换为直接引用,符号引用指…

    2025年3月6日
    200
  • Javaweb如何使用Maven工具与Tomcat的方法

    一、Maven工具 1,关于maven maven是一个项目构建工具,创建的项目只要遵循maven规范(称为maven项目),即可使用maven 来进行管理:编译,打包等。 2、安装maven 如果你的安装idea的时候已经配置好JDK,那…

    2025年3月6日 编程技术
    200

发表回复

登录后才能评论