Javaweb设置session过期时间

在Java Web开发中,Session为我们提供了很多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠时间)没有与服务器交互,服务器将此Session销毁,客户端再一次与服务器交互时之前的Session就不存在了。

设置Session超时时间方式

方式一:在web.xml中设置session-config

如下:

 <session-config>
      <session-timeout>2</session-timeout>
 </session-config> 

即客户端连续两次与服务器交互间隔时间最长为2分钟,2分钟后session.getAttribute()获取的值为空

API信息:

  session.getCreationTime()   获取session的创建时间
  session.getLastAccessedTime()  获取上次与服务器交互时间
  session.getMaxInactiveInterval() 获取session最大的不活动的间隔时间,以秒为单位120秒。

方式二:在Tomcat的/conf/web.xml中

session-config,默认值为:30分钟

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

方式三:在Servlet中设置

  HttpSession session = request.getSession();
  session.setMaxInactiveInterval(60);//单位为秒

说明

1.优先级:Servlet中API设置 > 程序/web.xml设置 > Tomcat/conf/web.xml设置

2.若访问服务器session超时(本次访问与上次访问时间间隔大于session最大的不活动的间隔时间)了,即上次会话结束,但服务器与客户端会产生一个新的会话,之前的session里的属性值全部丢失,产生新的sesssionId

3.客户端与服务器一次有效会话(session没有超时),每次访问sessionId相同,若代码中设置了session.setMaxInactiveInterval()值,那么这个session的最大不活动间隔时间将被修改,并被应用为新值。

4.Session的销毁(代表会话周期的结束):在某个请求周期内调用了Session.invalidate()方法,此请求周期结束后,session被销毁;或者是session超时后自动销毁;或者客户端关掉浏览器

5.对于JSP,如果指定了<%@ page session="false"%>,则在JSP中无法直接访问内置的session变量,同时也不会主动创建session,因为此时JSP未自动执行request.getSession()操作获取session。

总结

在程序开发过程中,我们可以在客户端每次与服务器交互时检查SessionID(Session中属性值,非HttpServlet环境开发中也可以用其它的Key值代替),用于会话管理。

原文地址:https://www.cnblogs.com/ibigboy/p/11544243.html

时间: 2024-10-27 06:13:47

Javaweb设置session过期时间的相关文章

asp.net web.config 设置Session过期时间

在Asp.net中,可以有四处设置Session的过期时间:(原文作者:望月狼地址:http://www.cnblogs.com/wangyuelang0526/) 一.全局网站(即服务器)级 IIS-网站-属性-Asp.net-编辑配置-状态管理-会话超时(分钟)-设置为120,即为2小时,即120分钟后如果当前用户没有操作,那么Session就会自动过期. 二.网站级 IIS-网站-具体网站(如DemoSite)-属性-Asp.net,此时有两个选项,一个是“编辑全局配置”,一个是“编辑配置

转:设置session过期时间

在Asp.net应用中,很多人会遇到Session过期设置有冲突.其中,可以有四处设置Session的过期时间: 一.全局网站(即服务器)级 IIS-网站-属性-Asp.net-编辑配置-状态管理-会话超时(分钟)-设置为120,即为2小时,即120分钟后如果当前用户没有操作,那么Session就会自动过期. 二.网站级 IIS-网站-具体网站(如DemoSite)-属性-Asp.net,此时有两个选项,一个是“编辑全局配置”,一个是“编辑配置”. 如果“编辑全局配置”,就和上个配置一样. 如果

YII2 设置session过期时间

设置session过期时间 如何在YII里设置SESSION过期时间,而不需要在php.ini里面设置. 在protected/config/main.php里,设置: 代码如下 复制代码 'components'=>array( 'session'=>array( 'timeout'=>3600, ), ) 设置session变量: Yii::app()->session['var']='value'; 使用: echo Yii::app()->session['var']

asp中设置session过期时间方法总结

http://www.jb51.net/article/31217.htm asp中设置session过期时间方法总结 作者: 字体:[增加 减小] 类型:转载 asp中默认session过期时间为20分钟,很多情况下不够,今天有客户要求很多就要重新登录了,所以准备了这篇文章,方便需要的朋友 如果程序中没有设置session的过期时间,那么session过期时间就会按照IIS设置的过期时间来执行,IIS中session默认过期时间为20分钟,IIS中session时间可以更改 时间设置要放在前面

转:php中实现精确设置session过期时间的方法

原文来自于:http://www.jb51.net/article/52309.htm 大多数据情况下我们对于session过期时间使用的是默认设置的时间,而对于一些有特殊要求的情况下我们可以设置一下session过期时间. 对此,可以在PHP中,设置php.ini,找到session.gc_maxlifetime = 1440 #(PHP5默认24分钟)这里你可以随便设置一下过期时间.但是有人说设置以后,好象不起作用!其实不是不起作用,而是因为系统默认: ? 1 2 session.gc_pr

C#如何设置session过期时间

1.操作系统  步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉  右键“属性”——〉主目录——〉配置——〉选项——〉启用会话状态——〉会话超时(在这儿设置你要的超时时间,单位分钟).确定即可.2.ASP.NET应用程序中Session过期时间的设置  在ASP.NET这样的Web应用中,Session是用来保存用户状态的常用手段,不过由于服务器内存空间是有限的,所以Session过期时间设置是很有必要的.  在ASP.NET中如何设置Sess

java中设置session过期时间

Web容器 apache-tomcat-8.0.26\conf\web.xml中设置 <session-config> <!-- 时间单位为分钟 --> <session-timeout>30</session-timeout> </session-config> Web工程 在项目工程的web.xml中设置 <session-config> <!-- 时间单位为分钟 --> <session-timeout>

web.config设置session过期时间

<sessionState mode="InProc" timeout="30" /> 原文地址:https://www.cnblogs.com/zhangwj/p/11050421.html

springboot shiro session过期时间配置

第一种方式:使用内置tomcat容器配置:在application.properties配置: #session过期时间(单位秒)  默认1800s(30min) #设置小于60秒,则会默认取1分钟 #实际过期时间为秒数对分钟取整,比如设置2000,则 2000s/60=33min,33min*60=1980s,实际过期时间为1980s server.session.timeout=3600 说明:该种方式只有使用内部tomcat时有效(EmbeddedServletContainerCusto