数据 保存在 session
ThreadContextHolder.getSessionContext().setAttribute()
package com.enation.framework.context.webcontext.impl;
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.Hashtable;
import java.util.Set;
import javax.servlet.http.HttpSession;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.enation.framework.context.webcontext.WebSessionContext;
/**
* @author kingapex
*/
public class WebSessionContextImpl implements WebSessionContext, Externalizable {
private HttpSession session;
private final Log logger=LogFactory.getLog(getClass());
// private SaveSessionAttributeCallBack callBackHandle;
private Hashtable attributes;
// private FrameworkSessionContextImpl sessionAttributeHolder;
/*
* (non-Javadoc)
*
* @see com.lenovo.labs.framework.util.sessioncontext.impl.FrameworkSessionContext#getSession()
*/
public HttpSession getSession() {
return session;
}
/*
* (non-Javadoc)
*
*
*/
public void setSession(HttpSession session) {
if(logger.isDebugEnabled()){
logger.debug("set session "+ session);
}
this.session = session;
this.attributes = (Hashtable) this.session
.getAttribute(sessionAttributeKey);
if (attributes == null) {
attributes = new Hashtable();
this.onSaveSessionAttribute();
}
}
/*
* (non-Javadoc)
*
* @see com.lenovo.labs.framework.util.sessioncontext.impl.FrameworkSessionContext#invalidateSession()
*/
public void invalidateSession() {
// this.session.removeAttribute(sessionAttributeKey);
this.session.invalidate();
// this.session = null;
// this.sessionAttributeHolder = null;
}
// public FrameworkSessionContextImpl getSessionAttributeHolder() {
// return sessionAttributeHolder;
// }
// public void setSessionAttributeHolder(FrameworkSessionContextImpl
// sessionAttributeHolder) {
// // this.sessionAttributeHolder = sessionAttributeHolder;
// // this.sessionAttributeHolder.setCallBackHandle(this);
// this.session.setAttribute(sessionAttributeKey,
// sessionAttributeHolder);
// }
private void onSaveSessionAttribute() {
this.session.setAttribute(sessionAttributeKey, attributes);
}
/*
* (non-Javadoc)
*
* @see com.lenovo.labs.framework.util.sessioncontext.impl.FrameworkSessionContext#setAttribute(java.lang.String,
* java.lang.Object)
*/
public void setAttribute(String name, Object value) {
if(attributes!=null){
// if(logger.isDebugEnabled()){
// logger.debug("set attribute :");
// logger.debug("attributes=>"+attributes);
// logger.debug("name=>"+name);
// logger.debug("value=>"+value);
// }
attributes.put(name, value);
onSaveSessionAttribute();
}
}
/*
* (non-Javadoc)
*
* @see com.lenovo.labs.framework.util.sessioncontext.impl.FrameworkSessionContext#getAttribute(java.lang.String)
*/
public Object getAttribute(String name) {
if(attributes!=null)
return attributes.get(name);
else return null;
}
/*
* (non-Javadoc)
*
* @see com.lenovo.labs.framework.util.sessioncontext.impl.FrameworkSessionContext#getAttributeNames()
*/
public Set getAttributeNames() {
return attributes.keySet();
}
/*
* (non-Javadoc)
*
* @see com.lenovo.labs.framework.util.sessioncontext.impl.FrameworkSessionContext#removeAttribute(java.lang.String)
*/
public void removeAttribute(String name) {
attributes.remove(name);
onSaveSessionAttribute();
}
// public SaveSessionAttributeCallBack getCallBackHandle() {
// return callBackHandle;
// }
//
// public void setCallBackHandle(SaveSessionAttributeCallBack
// callBackHandle) {
// this.callBackHandle = callBackHandle;
// }
public void readExternal(ObjectInput input) throws IOException,
ClassNotFoundException {
attributes = (Hashtable) input.readObject();
}
public void writeExternal(ObjectOutput output) throws IOException {
output.writeObject(attributes);
}
public void destory() {
this.attributes = null;
this.session = null;
}
}
详细解决方案
数据 封存在 session
热度:636 发布时间:2012-09-04 14:19:30.0
相关解决方案
- Servlet Session 购物车,该怎么解决
- Servlet Session 购物车解决办法
- session 覆盖的有关问题 求高手
- Could not deserialize session data解决方法
- response.write(session.getAttribute("BranchName")提示异常
- JSP上if(trim(session.getAttribute("grade"))== "0") 多谢!
- session.invalidate()无效解决办法
- null id in com.bsw.gms.hibernate.pojo.Score entry (don't flush the Session after an exception occurs,该怎么解决
- spring2.0+hibernate3.2中,oracle中产生大量的inactive session,怎么解决
- session 登录有关问题
- Struts2 的 Action 类里如何创建 session request response out 对象
- WEB session 有关问题
- 一个纠结的有关问题-session
- 使用 StateServer 保存 Session,哪位高手用过啊
- Session.Remove()为啥不起作用
- session 没法自动注销
- asp.net session 有效性有关问题
- session 和 cookie 的有关问题
- session 过期有关问题
- Session 值丢失,该如何处理
- Session["loginname"] 赋值两种方式有什么区别解决办法
- C# session 存不了Table,该如何处理
- TreeNode的NavigateUrl不能使用<%= Session["XXX"] %>">吗?解决思路
- Session Cookie without Secure flag set,该怎么解决
- Session 在IE6下丢失信息解决方案
- Session 对象 失效时间怎么 改为 5小时
- Application/Session/ViewState/Cache/cookie 这几个对象可以存储的最大长度是多少,默认是多少?解决方案
- session bug修复了吗解决方法
- Session Winform WebForm 共享解决方案
- asp连接aspx时,传递参数(session)的有关问题