是否有任何方式讓java servlet/jsp確定Web服務器的會話超時(以秒,分鐘等等爲單位)?我試着查看HttpSession和System API,但沒有看到用於確定Web服務器會話超時的任何屬性。我知道這個值是在web.xml中設置的,但我正在設計一個java庫,需要通過代碼來確定它。以編程方式確定Java會話超時
注:我正在設計一個通用的Web服務器,不能依賴於供應商特定的擴展。
是否有任何方式讓java servlet/jsp確定Web服務器的會話超時(以秒,分鐘等等爲單位)?我試着查看HttpSession和System API,但沒有看到用於確定Web服務器會話超時的任何屬性。我知道這個值是在web.xml中設置的,但我正在設計一個java庫,需要通過代碼來確定它。以編程方式確定Java會話超時
注:我正在設計一個通用的Web服務器,不能依賴於供應商特定的擴展。
會話的超時由空閒時間確定的,所以沒有辦法知道什麼時候會超時。
然而,就可以計算出下一個可能的假設超時會話不被訪問,
Date expiry = new Date(session.getLastAccessedTime() + session.getMaxInactiveInterval()*1000);
您可以在會話對象調用getMaxInactiveInterval。
在Servlet的使用:
int timeoutInSeconds = request.getSession().getMaxInactiveInterval();
在JSP使用:
<p>Timeout in seconds: ${pageContext.session.maxInactiveInterval}</p>
這是代碼來獲取超時值:
<%= session.getMaxInactiveInterval() %>