2015-04-02 47 views
0

我有一个非常简单的查询。可以说一个会话对象不存在或它被删除,我使用sessionMap.remove(non_existing_object_key或already_removed_object)。那么会发生什么?它会抛出异常吗?删除已被删除的会话对象

+0

你可以检查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

+0

感谢PRASHANT – user3681970 2015-04-02 06:19:21

回答

0

你可以看到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异常,如果它被称为上 无效会话。