Tomcat如何禁用session(Turn off the Session in Tomcat )
来源:互联网 发布:淘宝剁手说说 编辑:程序博客网 时间:2024/06/05 00:23
有时候我们不需要用到session,而session在tomcat中是属于关键功能,它在启动的时候会自动创建,这样就会消耗一定的内存空间,如果访问量大了session就会产生很多。这样也不利于我们进行分布扩展。
平时大家关闭session 会用到
<%@ page session="false" %>或者
request.getSession(false);
但这样并不是完全关闭session,所以我们换一种方式去关闭
http://www.oschina.net/question/5460_12907 这里提供了一种思路,通过自定义的session管理器来禁止Tomcat默认的session策略,在这里我贴出实现的代码:
package com.nosession;import java.io.IOException;import org.apache.catalina.Lifecycle;import org.apache.catalina.LifecycleException;import org.apache.catalina.LifecycleListener;import org.apache.catalina.LifecycleState;import org.apache.catalina.Session;import org.apache.catalina.session.ManagerBase;import org.apache.catalina.util.LifecycleSupport;public class SessionManager extends ManagerBase implements Lifecycle {protected LifecycleSupport lifecycle = new LifecycleSupport(this);@Overridepublic void addLifecycleListener(LifecycleListener listener) {lifecycle.addLifecycleListener(listener);}@Overridepublic LifecycleListener[] findLifecycleListeners() {return lifecycle.findLifecycleListeners();}@Overridepublic void removeLifecycleListener(LifecycleListener listener) {lifecycle.removeLifecycleListener(listener);}@Overrideprotected synchronized void startInternal() throws LifecycleException {super.startInternal();setState(LifecycleState.STARTING);setDistributable(true);}@Overrideprotected synchronized void stopInternal() throws LifecycleException {setState(LifecycleState.STOPPING);}@Overridepublic int getRejectedSessions() {return 0;}public void setRejectedSessions1(int i) {}@Overridepublic void load() throws ClassNotFoundException, IOException {}public void setRejectedSessions(int arg0) {}@Overridepublic void unload() throws IOException {}@Overridepublic Session createSession(String sessionId) {// TODO 关键位置return null;}public Session createSession() {// TODO 关键位置return null;}@Overridepublic Session createEmptySession() {// TODO 关键位置return null;}@Overridepublic void add(Session session) {}@Overridepublic Session findSession(String id) {return null;}@Overridepublic void remove(Session session) {remove(session, false);}@Overridepublic void remove(Session session, boolean update) {}@Overridepublic void processExpires() {}}
用该代码单独创建一个工程,并导出为jar文件,并把导出的jar文件放到Tomcat的lib文件夹中,然后修改配置文件context.xml,修改环境Manager节点为如下内容:
<span style="font-size:14px;"><Manager className="com.nosession.SessionManager" /></span>然后重启Tomcat,大功告成,Session再也没有用了,就算在jsp中设置session=true或者request.getSession(true);也无法使用session。如果你有更好的方式可以联系我!
0 0
- Tomcat如何禁用session(Turn off the Session in Tomcat )
- tomcat为什么要禁用session?
- Tomcat Session
- tomcat session
- Tomcat 8如何配置Session Replication实现Session共享
- 如何指定tomcat中session过期时间
- Tomcat 下二级域名如何共享Session
- Tomcat集群session如何共享详解
- tomcat中的session管理
- tomcat session 复制
- Tomcat Session的管理
- tomcat下 共享session
- tomcat下 共享session
- tomcat中的session管理
- Tomcat 报错,.....session......
- tomcat下 共享session
- tomcat session 持久化
- nginx+tomcat+session共享
- 乐学成语——显示所有动物类成语的列表
- Major GC和Full GC的区别是什么?触发条件呢?
- 简单易懂的金融"杠杆原理"解说
- 集合
- 51NOD 1259 整数划分 (五边形定理)
- Tomcat如何禁用session(Turn off the Session in Tomcat )
- HDU 1071 The area ----求定积分
- Git SSH Key 生成步骤
- 32. Longest Valid Parentheses
- leetcode 109 Convert Sorted List to Binary Search Tree
- 练字和平时写字完全不一样怎么办?
- 当ListView遇上RecyclerView, ListView将甘拜下风
- 5种CSS_RESET借鉴
- Redis内存回收:LRU算法