- 浏览: 890151 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (687)
- java (127)
- servlet (38)
- struts (16)
- spring (22)
- hibernate (40)
- javascript (58)
- jquery (18)
- tomcat (51)
- 设计模式 (6)
- EJB (13)
- jsp (3)
- oracle (29)
- RUP (2)
- ajax (3)
- java内存管理 (4)
- java线程 (12)
- socket (13)
- path (5)
- XML (10)
- swing (2)
- UML (1)
- JBPM (2)
- 开发笔记 (45)
- Note参考 (15)
- JAXB (4)
- Quartz (2)
- 乱码 (2)
- CSS (2)
- Exception (4)
- Tools (7)
- sqlserver (3)
- DWR (7)
- Struts2 (47)
- WebService (2)
- 问题解决收藏 (7)
- JBOSS (7)
- cache (10)
- easyUI (19)
- jQuery Plugin (11)
- FreeMarker (6)
- Eclipse (2)
- Compass (2)
- JPA (1)
- WebLogic (1)
- powerdesigner (1)
- mybatis (1)
最新评论
-
bugyun:
受教了,谢谢
java 正则表达式 过滤html标签 -
xiongxingxing_123:
学习了,感谢了
java 正则表达式 过滤html标签 -
wanmeinange:
那如果无状态的。对同一个任务并发控制怎么做?比如继承Quart ...
quartz中参数misfireThreshold的详解 -
fanjieshanghai:
...
XPath 元素及属性查找 -
tianhandigeng:
还是没明白
quartz中参数misfireThreshold的详解
Tomcat5.5.12 实现Session持久化的配置:
为什么要持久化SESSION:
在客户端每个用户的Session对象存在Servlet 容器中,如果Tomcat服务器重起/当机的话该session就会丢失,而客户端的操作应为session的丢失而造成数据丢失,而且当前用户访问量巨大,每个用户的Session里存放大量的数据的话,那么就很占用服务器大量的内存,从而是服务器的性能受到影响。
TOMCAT持久化办法:
Tomcat里,系统提供Session的持久化策略。其中对session的存储提供两种办法,一个是本地文件存储,一个是数据库存储
进入tomcat的配置文档目录/conf,可以看到context.xml文件,我们将在这里配置Session持久化,配置后将对所有的站点生效。
打开context.xml,在<Context>节点下添加如下<Manager>节点:
<Manager className="org.apache.catalina.session.PersistentManager" >
debug=0
saveOnRestart="true"
maxActiveSession="-1"
minIdleSwap="-1"
maxIdleSwap="-1"
maxIdleBackup="-1"
<Store className="org.apache.catalina.session.FileStore" directory="../session" />//这里代表的是文件持久化.也可 //以自己实现Store
</Manager>
JDBCStore配置:
<Store calssName="org.apache.catalina.JDBCStore" driverName="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost/tomsessionDB?user=root&password="
sessionTable="tomcat_session" sessionIdCol="session_id" sessionDataCol="session_data"
sessionValidCol="session_valid" sessionMaxInactiveCol="max_inactive"
sessionLastAccessedCol="last_access" sessionAppCol="app_name" checkInterval="60" debug="99" />
---------表
create table tomcat_session(session_id,session_data,session_valid,max_inactive,last_access,app_name)
className:Session的管理类,tomcat将会通过定义的接口来应用该类生成的对象。
debug:Session管理器的跟踪级别。
saveOnRestart:(true/false)配置服务重启工程中对session的处理,若为true,则关闭前把有效的session保存,启动后重新载入
maxActiveSession:活动状态Session的最大数,为-1时则不限制,否则Session Manager将会把超出的Session对象转移到Session Store中。
minIdleSwap:Session不活动的最短时间,超过该时间,Session Manager 可能会把该Session对象转移到Session Store中,单位为秒。
maxidleSwap:Session不活动的最长时间,超过该时间,Session Manager 将会把该Session对象转移到Session Store中,该Session将不在内存中。
maxidleBackup: Session不活动的最长时间,超过该时间,Session Manager 将会把该Session对象备份到Session Store中,但该Session对象依然存在内存中。
<Store>指定实现持久化的类和Session存放的文件位置,如该例子中指定的类是:org.apache.catalina.session.FileStore,而Session对象存放的目录则是tomcat根目录下的 session文件夹(当然自己创建)
配置完后可以写一个简单的jsp页面,在页面上显示本次用户访问的Session ID,然后重起tomcat,再刷新该页面,可以看到该Session Id不变,而在/session目录下自动生成一个以session id为名,以“session”为扩展名的文件。该Session的持久化配置成功
TOMCAT的另一种SESSION持久化方法:
继承StardSession,实现相应方法。当往SESSION里面保存属性的时候,调用setAttribute方法,setAttribute方法的实现大概如下:
MemcacheClient mc =new MemcacheClient();
public void setAttribute(String name, Object value) {
String key = name + this.getId();
if(mc.keyExists(key)){
mc.replace(key, value);
}else{
mc.set(key, value);
}
}
使用SESSIONID+属性名.通MemcachedClient.set()方法存入Memcached中.具体实现在附件中(有借用他人代码)
Context.xml配置文件
<Manager className="org.apache.catalina.session.MemcachedManager" debug=0
saveOnRestart="true"
maxActiveSession="-1"
minIdleSwap="-1"
maxIdleSwap="-1"
maxIdleBackup="-1" serverlist="127.0.0.1:11211" >
- memcache-session.jar (6.8 KB)
发表评论
-
java解决网站静态页面生成方案(源码)
2012-07-01 01:51 0提升网站性能的方式有很多,例如有效的使用缓存,生成静态页 ... -
Servlet映射的匹配原则,优先级
2012-06-08 22:45 1451一个元素用于映射一个已经注册的Servlet的一个对外访问 ... -
Servlet和filter的JAVAEE的配置
2012-06-05 22:52 886一、servlet容器对url的匹配过程: 当一个请求发送 ... -
tomcat 静态资源处理类DefaultServlet&Apache静态资源服务
2012-06-05 21:13 2330DefaultServlet是tomcat中用来处理静态资源和 ... -
如何获取搜索引擎的来源和其中的关键字
2011-08-30 21:39 1819在做商务E流量分析的时候,需要实现一个功能:如果访客是通过搜索 ... -
RequestDispatcher接口中的include()方法和forward()方法的区别
2011-04-19 15:34 1169请求转发中 RequestDispatcher 接口中的 in ... -
文件上传下载(oreilly之MultipartReques)
2011-04-10 22:36 1243上传篇代码片段: import com.oreill ... -
使用jstl还要在web.xml里面配一下
2011-01-30 11:26 1938悲剧,有人说是不用apac ... -
JAVA WEB学习笔记(五)-自定义JSP标签
2011-01-27 13:28 821一、基本概念:********** ... -
Filter拦截include方式的请求
2010-12-16 12:15 1006最近需要在项目中做一个缓存框架,通过插件方式加入,要求可以 ... -
<转>web.xml 中的listener、 filter、servlet 加载顺序及其详解
2010-12-10 22:45 917转载自 ailongni 最终编 ... -
web.xml里listener、filter和servlet加载顺序和详解(二)
2010-12-10 22:44 1237相应元素配置 1、Web应用图标:指出IDE和GUI工具用来 ... -
转】servlet中web.xml配置详解(转)
2010-12-10 22:42 878转载自 limpid1215 最终编辑 limpid121 ... -
Tomcat6中启用invoker心得
2010-10-26 08:31 1582今天下了看了一下示例,TOMCAT6中启用invoker 访问 ... -
el表达式不起作用的解决方案
2010-10-12 14:18 879关键字: el表达式不起作用 今天晚上学习SSH,发现一个el ... -
getOutputStream() has already been called for this response
2010-10-11 16:15 1269java.lang.IllegalStateException ... -
关于serveletContext.getRealPath()方法
2010-10-11 10:23 20431.关于request.getRealPath 问 ... -
采用application/vnd.ms-excel导出excel时修改文件名
2010-09-26 10:17 3906设置response属性,如下 response.se ... -
HttpServletResponse addHeader 与 setHeader 区别
2010-09-09 19:09 3880setHeader(name,value) :如果Header ... -
web.xml配置详解
2010-09-09 09:47 749转自:http://blog.csdn.net/j ...
相关推荐
Tomcat_Session 的持久化 在 Web 应用程序中,Session 是一种用来跟踪用户状态的机制。Tomcat_Session 的持久化是指将 HttpSession 对象保存到文件系统或数据库中,以便在服务器关闭或重启时可以恢复 Session 数据...
例如,可以使用Servlet容器(如Tomcat)的内置Session持久化配置,或者自定义实现`HttpSessionListener`和`HttpSessionBindingListener`来监听Session的创建和销毁事件,进行手动持久化操作。 标签中的"源码"可能...
标题"tomcat session存到mencache"指的是将Tomcat的session持久化存储到Memcache中,以提高性能和可扩展性。 Memcache可以在多台服务器之间共享session数据,从而支持负载均衡和高可用性。对于描述中提到的“版本为...
根据给定文件的信息,本文将围绕“Session 用户交互间隔与 Session 持久化”这一主题进行深入探讨,包括 Session 的基本概念、Tomcat 中 Session 的管理方式、Session 的持久化机制以及用户交互间隔等内容。...
Tomcat服务器不再负责Session的持久化,而是将Session数据写入Redis,所有服务器都能访问这些数据。Nginx可以通过配置将Session ID传递给Tomcat,Tomcat再根据ID从Redis中获取Session信息。这样即使服务器发生故障,...
3. **Redis**:Redis是一个开源的键值存储系统,支持多种数据结构如字符串、哈希、列表、集合和有序集合,且具有高速缓存和持久化能力。在本场景中,Redis作为Session的中央存储,所有Tomcat服务器都向Redis读写...
此外,Redis的高并发性能和持久化能力也能保障在高负载下的服务稳定性。 请注意,此方法仅适用于JDK 8及以上版本。如果你的环境是JDK 7或更低,需要寻找兼容的Redis会话管理器库。同时,为了保证最佳效果,建议定期...
Redis是一个高性能的键值对数据存储系统,常用于缓存和持久化数据。它的高速读写能力使其成为存储session的理想选择,尤其是在分布式环境中,可以轻松实现session共享。 **知识点三:tomcat-redis-session-manager*...
这种方式不仅可以解决Session丢失的问题,还具有高可用性,因为Redis可以提供持久化存储,即使某个Tomcat实例宕机,恢复后也能快速找回Session信息。同时,由于Session数据存储在独立的Redis中,对于提升应用性能也...
可以通过设置合适的session过期时间、使用Redis的持久化机制以及监控Redis的性能,来优化session共享的效率和可靠性。 总结来说,"nginx+tomcat shiro实现多tomcat下session共享"是一种常见的分布式系统架构策略,...
Memcached因其高性能和轻量级特性,在分布式环境中常被用作Session持久化存储。 5. **Minglog**: Minglog可能是一个日志记录库,它可以帮助开发者追踪和分析与Session共享相关的操作,对于调试和优化系统性能至关...
在现代Web应用程序开发中,session管理是一个至关重要的环节,它涉及到用户会话的持久化和跨请求的数据共享。传统的session管理方式在高并发、分布式环境中可能会面临效率低下和数据一致性的问题。为了解决这些问题...
2. **持久化**:为了防止Redis数据丢失,需要启用数据持久化功能,如RDB或AOF,确保即使Redis重启,Session数据也能恢复。 3. **过期策略**:合理设置Session的过期时间,防止内存占用过高,同时需要处理Session...
这是一个开源项目,它允许Tomcat服务器将用户的session数据持久化到Redis数据库中,而不是传统的内存或本地硬盘。这样,无论用户访问哪个服务器节点,都能获取到正确的session信息,从而实现负载均衡下的会话持久性...
这是Tomcat的持久化Session管理器,可以与其他存储机制集成。 3. **配置RedisStore**:配置`Manager`的属性,包括`storeClass`,设置为`org.apache.catalina.session.RedisStore`,这告诉Tomcat使用Redis作为...
此外,为了保证数据安全,还可以配置Redis进行数据持久化,防止服务器重启导致session丢失。 总的来说,通过使用Tomcat和Redis,我们可以构建一个高效且可扩展的session共享方案,为大型Web应用提供稳定的服务。...
为了解决这些问题,可以将Tomcat的session持久化到外部存储,比如Redis,一个高性能的键值数据库,特别适合用于存储这类临时但重要的数据。 首先,让我们理解Tomcat的session管理机制。默认情况下,Tomcat会将...
在分布式系统中,Session共享是一个常见的挑战,尤其是在多个服务器之间,比如使用Tomcat作为Web容器的环境。...因此,在实际生产环境中,可能需要结合持久化存储或者其他的Session复制策略来确保数据的安全性。