我在我的行动中使用 aSessionMap (org.apache.struts2.dispatcher.SessionMap<K,V>)
来跟踪我的会话。我也使用invalidate()
SessionMap 提供的方法进行注销。
使用 Tomcat 提供的 webapp“管理器”,我可以监控服务器中的会话。当我想从我的 web 应用程序中注销时,我调用该方法invalidate()
。
但是调用此方法后会话不会过期!
Invalidate()
方法只删除存储在会话中的对象(例如,login()
在会话存在之后创建的用户对象。
希望我的解释清楚,我该如何解决这个问题?提前致谢
我的代码:
public String execute(){
User user = authenticateUser( getUsername(), getPassword() );
if ( user == null )
{
/* User not valid, return to input page. */
return INPUT;
}
else{
session.put( "user", user );
}
return SUCCESS;
}
我使会话无效,如下所示:
public String logout(){
session.invalidate();
System.out.println("LOGOUT");
return "logout";
}
会话在哪里:
private SessionMap<String, Object> session;