数码资讯
js设置session(js设置session有效时间)
1. js设置session有效时间session默认有效期是30分钟。设置session的有效期有三种方法:1.在tomcat中的server.xml中定义:在tomcat中的conf/server.xml文件可以修改服务器上的所有程序的默认有效期,设置单位为毫秒,定义代码如下:
1. js设置session有效时间
session默认有效期是30分钟。
设置session的有效期有三种方法:
1.在tomcat中的server.xml中定义:
在tomcat中的conf/server.xml文件可以修改服务器上的所有程序的默认有效期,设置单位为毫秒,定义代码如下:
<Context path="/test" docBase="/test"
defaultSessionTimeOut="36000" isWARExpanded="true"
isWARValidated="false" isInvokerEnabled="true"
isWorkDirPersistent="false"/>
2.在工程的web.xml中定义:
在工程web.xml中修改有效期,设置单位为分钟,定义代码如下:
<session-config>
<session-timeout>60</session-timeout>
</session-config>
3.通过Java代码设定:
设置单位为秒,设置为-1则表示永不过期
session.setMaxInactiveInterval(30*60)。
2. 设置session失效时间
项目里面有个需求,当用户长时间未操作的时候,将session设置为失效
首先说题外话,session超时失效的需求,正确的做法是server端设置session expire time。用户每次向server提交请求(如GET跳转页面,POST提交表格等)时,server可以延长session expire time。如果用户长时间未操作然后再次提交请求时,session因为过期已经被销毁了,请求也就无效,server这时可以把用户重定向到login页面。前端过一段时间自动登出,这种功能,是提高用户体验的一种手段,而不是保证用户登录有效性的手段。因为JS是公开的,用户完全可以通过trigger event来模拟页面操作。====================================然后来回答问题,你要实现的是用户没有
操作一段时间以后,自动登出。
而不是用户执行某种操作时,保持登录。
所以你要做的只有两件事:1. 设置一个timer,比如15分钟,页面载入开始计时,到时间即执行登出逻辑。2. 当有页面操作时,reset timer,重新计时。
3. 设置session的有效时间
大概解读一下吧……你这段代码的意思是这样的:1. 如果没有设置$_SESSION['CREATERD'],则通过time()函数赋值,此时$_SESSION['CREATERD']为当前时间戳(记住是当前时间戳啊)2. 如果设置了$_SESSION['CREATERD'],则将$_SESSION['CREATERD']的值与现在的时间戳time()进行对比,此时不管怎么样,肯定都是过了一段时间的,这个时候的time()的返回值一定和$_SESSION['CREATERD']不一样。因此判断差值,如果大于1800秒(总是会弄混不同语言的time函数精度……谢 @陈然
提醒),就更新$_SESSION['CREATERD']的值。不知道你看懂没有……
4. 设置session超时时间
如果程序中没有设置session的过期时间,那么session过期时间就会按照IIS设置的过期时间来执行,IIS中session默认过期时间为20分钟,IIS中session时间可以更改
如果程序中设置了session过期时间,那么,即使你将IIS中session时间设置100小时也没有用,因为程序会首先按照程序中设置,只有程序没设置的情况下才会按照IIS设置的
时间设置要放在前面
例如
代码如下 Session.Timeout=30 'SEESION有效时间为30分钟
Session(ID)=Rs(id)
Session(Name)=Rs(Name)
Session(Pass)=Rs(Pass
利用 Session.Timeout 属性设置超时时限
对于一个登录到 ASP 应用程序的用户,如果用户在系统默认的时间内未进行其它任何操作,当设置的时间一到便自动撤销这个用户的 Session,这样就可以防止系统的资源被浪费。Session 对象的 TimeOut 属性可以用来设置过期时间,已分钟为单位,其设置格式为:
代码如下 Session.TimeOut=MaxTime
实例代码:(5.asp)页面,本实例说明如何控制会话的结束。
代码如下
%@ language=vbscript %
% session.timeout=60 %
html
headtitle控制会话的结束时间/titlehead
body
%
who = Session.SessionID
CurrentPage=Request.ServerVariables(SCRIPT_NAME)
Response.AppendTolog who : CurrentPage
Response.write center你的会话标识为: who p
Response.write 你当前访问的页面路径为: CurrentPage p
if Session(I)= then
session(i)=1
else
session(i)=session(i)+1
end if
Session.Abandon
Response.write 本页面被你刷新了 Session(i) 次。/centr
%
Asp.net应用中,很多人会遇到Session过期设置有冲突。其中,可以有四处设置Session的过期时间:
一、全局网站(即服务器)级
IIS-网站-属性-Asp.net-编辑配置-状态管理-会话超时(分钟)-设置为120,即为2小时,即120分钟后如果当前用户没有操作,那么Session就会自动过期。
IIS-网站-具体网站(如DemoSite)-属性-Asp.net,此时有两个选项,一个是编辑全局配置,一个是编辑配置。
如果编辑全局配置,就和上个配置一样。
如果编辑配置,则只对当前网站生效。因为一个服务器可能有很多独立网站。
1、继续选择状态管理-会话超时(分钟)-设置为360,即360分钟。效果同上,只不过只对当前网站生效。
2、身份认证-Forms-Cooke超时,选择12:00:00,即12个小时。可选项共有以下八项:
00:15:00
00:30:00
01:00:00
02:00:00
04:00:00
08:00:00
12:00:00
1:00:00:00
即最长24小时,最小15分钟。这是默认的配置。在应用中可以自由定制。
三、应用程序级
同网站管理,只不过作用域仅限当前应用程序。
四、页面级
在某页面中,设置Session.Timeout = 30;即可临时修改某页面的会话过期时间。
查看某个Session的过期时间,可以用
代码如下 TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);
其中,二和三的设置,体现在Web.config中即:
代码如下 view plaincopy to clipboardprint?
?xml version=1.0?
configuration
system.web
authentication mode=Forms
forms name=AuthLogin loginUrl=/Login.aspx protection=All timeout=360 slidingExpiration=true/
/authentication
sessionState mode=InProc cookieless=false timeout=20 /
/system.web
location path=Login.aspx
system.web
authorization
allow users=* /
/authorization
/system.web
/location
/configuration
5. session的时间设置
个人认为,能不用SESSION,尽量不用SESSION吧,因为SESSION有单机的问题,不适合集群,而且SESSION的回收清理也不太方便,很容易受到攻击,比如说用SESSION记录验证码,如果有人CC攻击验证码,就会产生很多垃圾数据.PHP默认是一个SESSION对应一个磁盘文件.Ubuntu/Debian上apt安装的PHP会带有一个定时任务/etc/cron.d/php5来清理会话文件.即使用Redis存储PHP SESSION,并设置了过期时间,也只能依赖Redis周期性随机检测这种被动的过期机制来清除会话记录(有残余).
Memcached作者说过,Memcached不适合存SESSION,因为Memcached默认的LRU清理机制会在内存不足时清理掉一些记录,可能会导致用户无缘无故地掉线.Redis默认设置是noeviction(不收回),内存不够直接报错.
6. session默认时间
session.removeAttribute()适用于清空指定的属性
session.invalidate()是清除当前session的所有相关信息
removeAttribute就是从session删除指定名称的绑定对象,也就是说调用此方法后再调用getAttribute(Stringname)时,不能获取指定名称的绑定对象,但是session还存在。invalidate就是销毁此session对象,session对象中绑定的那些对象值也都不存在了.
session.invalidate()是销毁跟用户关联session,例如有的用户强制关闭浏览器,而跟踪用户的信息的session还存在,可是用户已经离开了。
虽然session 生命周期浏览默认时间30分,但是在30分钟内别的用户还可以访问到前一个用户的页面,需销毁用户的session。
session.removeAttribute()移除session中的某项属性。
在spring例子中宠物商店的注销登录的代码:
request.getSession().removeAttribute(“userSession”);
// 注销用户,使session失效。
request.getSession().invalidate();
removeAttribute是清空当前session中指定的属性,下个request中的sessionID是不变的
也就是说,session还是原来的session。
7. js中session的用法
js可以通过sessionStorage或者是localeStorage短暂的存储数据,甚至是cookie也可以存贮数据的,他们都是前端开发里面常用到的缓存机制的,一般都是存储一些登录信息的比如token请求头信息还有就是一些公共的全局变量的数据信息的。
8. 前端设置session过期时间
session的有效期和容器的配置有关!单不统一,比如常见的tomcat容器,默认的session有效期为30s
9. 利用()属性设置session的有效时间
有四种修改方式可以设置session的有效期限。你可以看下,应该是哪个地方设置的时间太短了,所以就过期了。1、操作系统:
步骤:开始——〉管理工具——〉Internet信息服务(IIS)管理器——〉网站——〉默认网站——〉右键“属性”——〉主目录——〉配置——〉选项——〉启用会话状态——〉会话超时(在这儿设置你要的超时时间,单位分钟)。确定即可。
2、ASP.NET应用程序中Session过期时间的设置
在ASP.NET这样的Web应用中,Session是用来保存用户状态的常用手段,不过由于服务器内存空间是有限的,所以Session过期时间设置是很有必要的。在ASP.NET中如何设置Session的过期时间呢,很简单,修改web.config配置。
具体修改方法如下,在web.config中进行如下配置
<system.web>
<sessionState mode="InProc" timeout="30"/>
</system.web>
在这里指的是Session过期时间为30分钟。也就是说30分钟后如果当前用户没有操作,那么Session就会自动过期了。
3、在调用Session的cs页中,Load事件里面写以下
Session.Timeout = 30;
4、Store session in asp.net state service
<sessionState cookieless="false" timeout="480" mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;user id=sa;password=" />看一下,看你的程序是用到了哪种设置方式,把时间改成你需要的时间就可以了。
10. session默认有效时间多长
Spring 容器在初始化一个 Bean 的实例时,同时会指定该实例的作用域。Spring3 为 Bean 定义了五种作用域,具体如下。
1)singleton
单例模式,使用 singleton 定义的 Bean 在 Spring 容器中只有一个实例,这也是 Bean 默认的作用域。
2)prototype
原型模式,每次通过 Spring 容器获取 prototype 定义的 Bean 时,容器都将创建一个新的 Bean 实例。
3)request
在一次 HTTP 请求中,容器会返回该 Bean 的同一个实例。而对不同的 HTTP 请求,会返回不同的实例,该作用域仅在当前 HTTP Request 内有效。
4)session
在一次 HTTP Session 中,容器会返回该 Bean 的同一个实例。而对不同的 HTTP 请求,会返回不同的实例,该作用域仅在当前 HTTP Session 内有效。
5)global Session
在一个全局的 HTTP Session 中,容器会返回该 Bean 的同一个实例。该作用域仅在使用 portlet context 时有效。
在上述五种作用域中,singleton 和 prototype 是最常用的两种,接下来将对这两种作用域进行详细讲解。