struts2项目中,某个方法用到session 取用户名和密码。
public class Struts2ActionSupport extends ActionSupport implements Preparable {
protected Authorization auth = null;
public void prepare() throws Exception {
if(auth==null){
auth = (Authorization)getSession().getAttribute(Constant.SESSION_AUTH);
}
}
其实是取auth,这个类里的auth是公共变量,在tomcat 启动的时候加载的类,此处的变量也是第一个用户的变量,因为session不过期,这个auth就不变。
上述做法在以下业务场景不可以用:
业务场景:就是对不同的用户取不同的用户名和不同的用户信息。
应该用:Authorization autha = (Authorization)getSession().getAttribute(Constant.SESSION_AUTH); 这种实时取用session的方式取auth。