public class UserHash{
public static void addLoginUser(String seId,String uName){
OutHash.put(seId,uName);
}
public static void removeLoginUser(String seId){
OutHash.remove(seId);
}
public boolean LoginUser(String seId,String uName){
if(OutHash.containsKey(seId)){
if(uName.equals(OutHash.get(seId))){
return true;
}
}
return false;
}
public static Hashtable OutHash = new Hashtable(50, 5F);
}
我在上面这个类中是定义了一个静态哈希表,
在下面这个类中又定义了一个监听器,来调用上面这个类的静态方法为静态哈希表付值,和删除值。public class LoginUsers implements HttpSessionBindingListener{
public void valueBound(HttpSessionBindingEvent e){
if(e.getSession().getAttribute("username")!=null){
userhash.addLoginUser(e.getSession().getId(),(String)e.getSession().getAttribute("username"));
}
}
public void valueUnbound(HttpSessionBindingEvent e){
userhash.removeLoginUser(e.getSession().getId());
}
private com.sso.UserHash userhash;
}
在下面这个线程里搜索监听的数据,可是发现在线程里根不取不到数据。但是在jsp不用线程是可以取到的,
自己觉得是某种安全机制使我不能用线程访问静态变量,不知道我说的对不,如果是这样有什么好的办法解决这个问题,使我在线程里也可以访问到静态哈希表里的数据?
那位高手帮帮我。我先谢谢了~~~
run(){
if(userhash.LoginUser(seId,uName)){
pass = true;
}
}
public static void addLoginUser(String seId,String uName){
OutHash.put(seId,uName);
}
public static void removeLoginUser(String seId){
OutHash.remove(seId);
}
public boolean LoginUser(String seId,String uName){
if(OutHash.containsKey(seId)){
if(uName.equals(OutHash.get(seId))){
return true;
}
}
return false;
}
public static Hashtable OutHash = new Hashtable(50, 5F);
}
我在上面这个类中是定义了一个静态哈希表,
在下面这个类中又定义了一个监听器,来调用上面这个类的静态方法为静态哈希表付值,和删除值。public class LoginUsers implements HttpSessionBindingListener{
public void valueBound(HttpSessionBindingEvent e){
if(e.getSession().getAttribute("username")!=null){
userhash.addLoginUser(e.getSession().getId(),(String)e.getSession().getAttribute("username"));
}
}
public void valueUnbound(HttpSessionBindingEvent e){
userhash.removeLoginUser(e.getSession().getId());
}
private com.sso.UserHash userhash;
}
在下面这个线程里搜索监听的数据,可是发现在线程里根不取不到数据。但是在jsp不用线程是可以取到的,
自己觉得是某种安全机制使我不能用线程访问静态变量,不知道我说的对不,如果是这样有什么好的办法解决这个问题,使我在线程里也可以访问到静态哈希表里的数据?
那位高手帮帮我。我先谢谢了~~~
run(){
if(userhash.LoginUser(seId,uName)){
pass = true;
}
}
这里分享一下个人最喜欢的好站,上面有很多高质量的例子,代码,免费在线详细教程
http://www.java2s.com
希望对大家都有帮助*******