- 浏览: 865231 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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的详解
TOMCAT SESSION的持久化方法
- 博客分类:
- servlet
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 1418一个元素用于映射一个已经注册的Servlet的一个对外访问 ... -
Servlet和filter的JAVAEE的配置
2012-06-05 22:52 849一、servlet容器对url的匹配过程: 当一个请求发送 ... -
tomcat 静态资源处理类DefaultServlet&Apache静态资源服务
2012-06-05 21:13 2283DefaultServlet是tomcat中用来处理静态资源和 ... -
如何获取搜索引擎的来源和其中的关键字
2011-08-30 21:39 1785在做商务E流量分析的时候,需要实现一个功能:如果访客是通过搜索 ... -
RequestDispatcher接口中的include()方法和forward()方法的区别
2011-04-19 15:34 1123请求转发中 RequestDispatcher 接口中的 in ... -
文件上传下载(oreilly之MultipartReques)
2011-04-10 22:36 1204上传篇代码片段: import com.oreill ... -
使用jstl还要在web.xml里面配一下
2011-01-30 11:26 1893悲剧,有人说是不用apac ... -
JAVA WEB学习笔记(五)-自定义JSP标签
2011-01-27 13:28 785一、基本概念:********** ... -
Filter拦截include方式的请求
2010-12-16 12:15 960最近需要在项目中做一个缓存框架,通过插件方式加入,要求可以 ... -
<转>web.xml 中的listener、 filter、servlet 加载顺序及其详解
2010-12-10 22:45 885转载自 ailongni 最终编 ... -
web.xml里listener、filter和servlet加载顺序和详解(二)
2010-12-10 22:44 1207相应元素配置 1、Web应用图标:指出IDE和GUI工具用来 ... -
转】servlet中web.xml配置详解(转)
2010-12-10 22:42 848转载自 limpid1215 最终编辑 limpid121 ... -
Tomcat6中启用invoker心得
2010-10-26 08:31 1542今天下了看了一下示例,TOMCAT6中启用invoker 访问 ... -
el表达式不起作用的解决方案
2010-10-12 14:18 846关键字: el表达式不起作用 今天晚上学习SSH,发现一个el ... -
getOutputStream() has already been called for this response
2010-10-11 16:15 1236java.lang.IllegalStateException ... -
关于serveletContext.getRealPath()方法
2010-10-11 10:23 20171.关于request.getRealPath 问 ... -
采用application/vnd.ms-excel导出excel时修改文件名
2010-09-26 10:17 3451设置response属性,如下 response.se ... -
HttpServletResponse addHeader 与 setHeader 区别
2010-09-09 19:09 3849setHeader(name,value) :如果Header ... -
web.xml配置详解
2010-09-09 09:47 718转自:http://blog.csdn.net/j ...
相关推荐
Tomcat_Session的持久化,详细讲解tomcatsession管理的原理和持久化原理
在tomcat实现对session的持久化,如果浏览的用户过大,避免服务器的内存消耗太大,影响性能。
原理就是继承tomcat的manager接口,接管session的持久化工作 2.使用 ◦使用的时候就是Maven打包,放到tomcat的lib里面 (主要是三个包:commons-pool2-2.3.jar;jedis-2.7.3.jar;tomcat7-redis-cluster-1.0.0.jar) ...
原理就是继承tomcat的manager接口,接管session的持久化工作 2.使用 ◦使用的时候就是Maven打包,放到tomcat的lib里面 (主要是三个包:commons-pool2-2.3.jar;jedis-2.7.3.jar;tomcat7-redis-cluster-1.0.0.jar) ...
实现tomcat 8及以后版本的tomcat集群的session持久化操作,基于redis实现tomcat容器的session的持久化 tomcat-redis-session-manager-by-eguid.jar+jedis-2.9.0.jar+commons-pool2-2.2.jar集合包
Tomcat集群解决Session共享的方案: 1. 基于Cookie+Redis+Filter解决方案实现过程优缺点踩坑 2. Tomcat内置的Session复制方案实现过程优...4. 基于Session持久化方案 5. 基于Spring-Session无侵入性方案实现过程优缺点
实现tomcat 8及以后版本的tomcat集群的session持久化操作,基于redis实现tomcat容器的session的持久化 本项目是基于jcoleman的二次开发版本 1、修改了小部分实现逻辑 2、去除对juni.jar包的依赖 3、去除无效代码和老...
Redis的特点就是可以将session持久化。样才能真正实现后台多个Tomcat负载平衡,用户请求能够发往任何一个tomcat主机。 keeplived、zabbix与ansible暂不在本文章的范围当中,会在之后的文章逐一进行讲解 实验架构图 ...
4.2.1 持久化连接 18 4.2.2 编码 18 4.2.3 状态码100的使用 19 4.3 Connector接口 19 4.4 HttpConnector类 20 4.4.1 创建ServerSocket 20 4.4.2 维护HttpProcessor对象池 20 4.4.3 提供Http请求服务 21 4.5 ...
前言 ...本文首发于公众号顿悟源码. 解决办法就是使用 Cookie,它由服务器返回给浏览器,浏览器缓存并在每次请求时将 cookie 数据提交到服务器。Cookies 在请求中以明文传输,且大小限制 4KB,显然把所有状态数据保存...
4.2.1 持久化连接 18 4.2.2 编码 18 4.2.3 状态码100的使用 19 4.3 Connector接口 19 4.4 HttpConnector类 20 4.4.1 创建ServerSocket 20 4.4.2 维护HttpProcessor对象池 20 4.4.3 提供Http请求服务 21 4.5 ...
2.集群中,各个应用服务器提供了session复制的功能,tomcat和jboss都实现了这样的功能 3.session的持久化,使用数据库来保存session
4.1.1. 对持久化对象的要求 35 4.1.2. OID 36 5. Eclipse使用技巧 36 5.1. 一般插件安装 36 5.2. 自定义注释 37 5.3. 常用的快捷键 37 5.4. 代码编写小技巧 37 5.5. Eclipse中恢复已删除文件 37 5.6. Eclipse中轻松...
具体描述:独立完成项目的各个开发模块,本系统采用了典型MVC的三层架构,利用jsp实现表现层,struts实现业务逻辑,hibernate作数据持久化处理。利用hibernate的事务逻辑线程session实现事务的统一处理。Jsp只负责...
SSH 通常指的是 Struts2 做前端控制器,Spring 管理各层的组件,Hibernate 负责持久化层。 一个请求在Struts2框架中的处理大概分为以下几个步骤: 1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2、这...
在本课程中,你将了解Redis是什么、能干什么、如何用,了解NoSQL的使用场景和概念,快速掌握Redis的安装配置、五大数据类型、常用操作命令、Redis持久化、主从复制、事务控制以及用Jedis操作进行Java开发等知识。...
在本课程中,你将了解Redis是什么、能干什么、如何用,了解NoSQL的使用场景和概念,快速掌握Redis的安装配置、五大数据类型、常用操作命令、Redis持久化、主从复制、事务控制以及用Jedis操作进行Java开发等知识。...
2.2.3 持久化 2.2.4 用户化 2.3 Java Servlet 2.3.1 HTTP Servlet API 2.3.2 系统信息 2.3.3 传送HTML信息 2.4 SQL语言 2.4.1 SQL子类型 2.4.2 SQL语言的具体命令和使用 2.5 JDBC 2.5.1 什么是 JDBC ...