2012-05-08 41 views
-1

我正在使用struts1.3.8。 JSP頁面包含scriptlet以迭代會話中的數據。一旦用戶打開該頁面並且不執行任何操作,直到會話過期,然後再次刷新,則拋出java.lang.NullPointerException如何處理會話過期時JSP中的異常?

那麼如何處理這個異常以及如何讓會話保持活躍?

+0

這只是你的代碼中的一個錯誤。你應該修復你的代碼來處理對象爲null的情況,而不是依賴於它永遠不會成爲null。 – BalusC

+0

有時,當會話不過期時,會話屬性在嘗試訪問時也會給出空值。但有時工作正常。會有什麼問題?與會議? –

回答

0

您可以依靠知名會話中的屬性的存在。

當會話第一次創建時設置此項。

session.setAttribute("well-known-attribute", "abcd"); 

在你的JSP中,在你做任何迭代之前檢查這個屬性是否存在。

if(session.getAttribute("well-known-attribute") != null) { 
    // iterate others now 
} else { 
    session.setAttribute("well-known-attribute", "abcd"); 
    // now add the other attributes. 
} 

一個新會always be created如果

  • 沒有一個已經
  • 有相關的要求。
+0

嗨Adarshr,有沒有任何方式重定向用戶到一些異常頁面,當前刷新頁面拋出異常? –

+0

你可以在'web.xml'中聲明錯誤頁面。 ' java.lang.NullPointerException /error.jsp '。但我會建議處理它,而不是隻是重定向到一些錯誤頁面。 – adarshr

+0

當會話過期時,scriptlet會拋出異常。在這種情況下,重定向他到一些錯誤頁面將有意義,我認爲..是否正確? –