由Strust2 session过期引起的问题

ServletActionContext.getRequest().getSession( false ) 如果获取不到session则返回null

ServletActionContext.getRequest().getSession(  ) 等同于 ServletActionContext.getRequest().getSession(true  ) 如果没获取到session则会自动产生一个新的session

 

在实际应用中,一般情况下使用 ServletActionContext.getRequest().getSession(  ),是没有问题的,前提是在session过期前,在整个程序中获取得到是同一个session,如果session过期测会重新产生一个新session,在应用中这个新的session是没保存到你之前设置的值,同时你需要重新登录,但新登录的session的id 与过期后产生的session共存,并且Id不一样。会导致在两个页面有不同的session,这就是程序隐藏的bug

 

所以用ServletActionContext.getRequest().getSession( false ) .getAttribute("xx");

你可能感兴趣的:(session)