2015-04-02 50 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異常,如果它被稱爲上 無效會話。