1. 在tomcat——>conf——>servler.xml文件中定义:
<Context path="/test" docBase="/test" defaultSessionTimeOut="3600" isWARExpanded="true" isWARValidated="false" isInvokerEnabled="true" isWorkDirPersistent="false"/> defaultSessionTimeOut="3600"
2. 在web.xml中定义:
<session-config> <session-timeout>20</session-timeout> </session-config>
3. 在程序中定义:
session.setMaxInactiveInterval(30*60);
http://blog.csdn.net/vastskyjoe/archive/2009/01/06/3723280.aspx
别人的测试:http://sdyouyun.javaeye.com/blog/146275
http://blog.chinaunix.net/u/3984/showart_359018.html
使用Session机制一些常见的问题开发者在线 更新时间:2007-11-23作者:龚勋 来源:赛迪网本文关键词:问题 session
1、session在何时被创建
一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用
HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 %@page session="false"% 关闭session,则JSP文件在编译成Servlet时将会自动加上这样一条语句HttpSession session = HttpServletRequest.getSession(true);这也是JSP中隐含的session对象的来历。
由于session会消耗内存资源,因此,如果不打算使用session,应该在所有的JSP中关闭它。
2、session何时被删除
综合前面的讨论,session在下列情况下被删除a.程序调用HttpSession.invalidate();或b.距离上一次收到客户端发送的session id时间间隔超过了session的超时设置;或c.服务器进程被停止(非持久session)
3、如何做到在浏览器关闭时删除session
严格的讲,做不到这一点。可以做一点努力的办法是在所有的客户端页面里使用javascript代码window.oncolose来监视浏览器的关闭动作,然后向服务器发送一个请求来删除session。但是对于浏览器崩溃或者强行杀死进程这些非常规手段仍然无能为力。
4、有个HttpSessionListener是怎么回事
你可以创建这样的listener去监控session的创建和销毁事件,使得在发生这样的事件时你可以做一些相应的工作。注意是session的创建和销 毁动作触发listener,而不是相反。类似的与HttpSession有关的listener还有HttpSessionBindingListener,HttpSessionActivationListener和HttpSessionAttributeListener。
5、存放在session中的对象必须是可序列化的吗
不是必需 的。要求对象可序列化只是为了session能够在集群中被复制或者能够持久保存或者在必要时server能够暂时把session交换出内存。在 Weblogic Server的session中放置一个不可序列化的对象在控制台上会收到一个警告。我所用过的某个iPlanet版本如果session中有不可序列化的对象,在session销毁时会有一个Exception,很奇怪。
6、如何才能正确的应付客户端禁止cookie的可能性
对所有的URL使用URL重写,包括超链接,form的action,和重定向的URL,具体做法参见(http://e-docs.bea.com/wls/docs70/webapp/sessions.html#100770)。
7、开两个浏览器窗口访问应用程序会使用同一个session还是不同的session
参见第三小节对cookie的讨论,对session来说是只认id不认人,因此不同的浏览器,不同的窗口打开方式以及不同的cookie存储方式都会对这个问题的答案有影响。
8、如何防止用户打开两个浏览器窗口操作导致的session混乱
这个问题与防止表单多次提交是类似的,可以通过设置客户端的令牌来解决。就是在服务器每次生成一个不同的id返回给客户端,同时保存在session里,客 户端提交表单时必须把这个id也返回服务器,程序首先比较返回的id与保存在session里的值是否一致,如果不一致则说明本次操作已经被提交过了。可以参看《J2EE核心模式》关于表示层模式的部分。需要注意的是对于使用javascript window.open打开的窗口,一般不设置这个id, 或者使用单独的id,以防主窗口无法操作,建议不要再window.open打开的窗口里做修改操作,这样就可以不用设置。
9、为什么在Weblogic Server中改变session的值后要重新调用一次session.setValue做这个动作主要是为了在集群环境中提示Weblogic Server session中的值发生了改变,需要向其他服务器进程复制新的session值。
10、为什么session不见了
排除session正常失效的因素之外,服务器本身的可能性应该是微乎其微的,虽然笔者在iPlanet6SP1加若干补丁的Solaris版本上倒也遇到 过;浏览器插件的可能性次之,笔者也遇到过3721插件造成的问题;理论上防火墙或者代理服务器在cookie处理上也有可能会出现问题。
出现这一问题的大部分原因都是程序的错误,最常见的就是在一个应用程序中去访问另外一个应用程序。
相关推荐
基于tomcat7版本的memcached会话保持,内置tomcat需要的jar包。
redis缓存服务器Nginx+Tomcat+redis+MySQL实现session会话共享
原创文档,NGINX + TOMCAT 6 + REDIS 实现负载均衡 session会话同步,已亲测
Windows+Nginx+Tomcat做负载均衡同时实现session共享Demo
本资源是用于解决nginx+tomcat+redis__session__问题的资源包,涵盖具体教程
但是也带来了一个问题就是session共享的问题,虽然可以通过session复制来解决这个问题,但是在性能方面存在缺陷,所以最后我们采用了用memcached来存储session,这样既解决了session共享问题,也解决了session复制...
本实例基于nginx+tomcat+redis的集群实现,实现session的复制。压缩包内含两个tomcat+一个nginx服务器+64位windows版的redis+说明文档,下载即可运行,详细步骤可以参考文档,从此告别集群盲区
memcached-1.9.6,libevent-2.1.12-stable.tar memcached-session-manager-1.9.6,msm-kryo-serializer-1.9.6.jar,tomcat8.5,实现会话共享
本人是UBUNTU 的操作系统,但是全部是用源码安装的,可能有些细节不一样,但总体应该没问题, 我两台虚拟机上,成功共享session ...apache+tomcat+memcached 集群 session 共享会话,apache负载均衡
傻瓜式的描述怎么实现在一台windows机器上怎么实现Apache2.2+Tomcat6.0的负载均衡和session复制,不用动脑子的,因为我自己在配置过程中由于某些设置有问题,死活不成功,被折磨了很久,所以把分析过程写下来,如果...
Tomcat+Redis集群实现session会话共享
本资源包含有nginx+tomcat+mysql主从+redis部署详细文档以及安装包,因开源组件tomcat-redis-session-manage-tomcat8.jar目前不支持tomcat8,本人亲自对该jar包对源码进行过修改可支持tomcat8 亲测有效,非常适合不...
Tomcat+Redis实现session会话共享TomcatRedisSessionManager-1.0
搭建教程请查看 https://blog.csdn.net/qq_27184497/article/details/82626126
Tomcat_Session的持久化,详细讲解tomcatsession管理的原理和持久化原理
(2) session cluster:delta session manager 基于tomcat集群会话保持 分析:tomcat自身带的机制 session cluster,基于组播的方式,一个tomcat 被用户登录访问,记录session;通过组播给集群中的其他机器复制一份...
tomcat8专用session管理包,nginx+redis+tomcat8做负载均衡时要保持会话共享,需要用到的jar包
本篇文档详细记录了Tomcat通过自带的Cluster方式实现Session会话共享环境的操作记录,可作为部署手册长期使用。有需要的朋友请拿走~
包含tomcat集群redis会话共享的依赖jar包,包含有2.1.0和2.7.2两个版本,配置方式稍微有点差别,两个版本不兼容。 2.1.0版包含 commons-pool-1.6.jar jedis-2.1.0.jar tomcat-redis-session-manager-1.2-tomcat-7....