删除已被删除的会话对象
问题描述:
我有一个非常简单的查询。可以说一个会话对象不存在或它被删除,我使用sessionMap.remove(non_existing_object_key或already_removed_object)。那么会发生什么?它会抛出异常吗?删除已被删除的会话对象
答
你可以看到SessionMap
的代码删除指定的会话属性。
参数:属性的 键名称中删除。
返回: 已删除的值或如果未找到该值(因此未删除)则返回null。
public V More ...remove(Object key) {
if (session == null) {
return null;
}
synchronized (session) {
entries = null;
V value = get(key);
session.removeAttribute(key.toString());
return value;
}
}
但在remove方法的一行是调用的HttpSession方法removeAttribute(String key)
为:
session.removeAttribute(key.toString());
这将引发IllegalStateException异常,如果它被称为上 无效会话。
你可以检查https://struts.apache.org/maven/struts2-core/apidocs/org/apache/struts2/dispatcher/SessionMap.html#remove(java.lang.Object) – Prashant 2015-04-02 06:05:39
感谢PRASHANT – user3681970 2015-04-02 06:19:21