有时我们需要知道每个用户的登录信息,一般我们是将登录的用户信息是保存在session范围内,而我们在DAO中要是使用用户的某些信息,比哪录录ID,单位ID之类的信息进行过滤时,需要从从control 层传到sevice 层,再传到DAO层,比较麻烦。所以我们利用threadLocal 类来解决这方案,做到在任何类中可以直接得到session中的类型,具体实现思路是:用threadLocal 来保存userInfo的信息,在需要使用的类中只需要 new LocalThreadBean().getUserInfo()就可以得到用户登录信息了。
首先建立一个bean:
/**
*〖文件名〗: LocalThreadBean .java<br>
*〖功能模块〗:XXX系统<br>
*〖目的〗: <br>
*〖开发者〗: <br>
*〖创建日期〗: 2009-7-28<br>
*〖版本〗: 1.00<br>
*〖版权信息〗:XXXX<br>
*〖更改记录〗: 更改时间、更改人、更改原因、更改内容<br>
*/
package com.ygsoft.util;
import java.io.Serializable;
import javax.servlet.http.HttpServletRequest;
import com.jframe.mf.model.UserInfo;
public class LocalThreadBean implements Serializable{
private static ThreadLocal<Object> threadLocal = new ThreadLocal<Object>();
public HttpServletRequest getContext(){
return (HttpServletRequest)threadLocal.get();
}
public void setContext(HttpServletRequest request){
threadLocal.set(request);
}
public void cleanContext(){
threadLocal.set(null);
}
public UserInfo getUserInfo()
{
return (UserInfo)this.getContext().getSession().getAttribute("UserData");
}
}
[1] [2] 下一页
责任编辑:小草