2009-12-16 32 views
9

是否有任何方式讓java servlet/jsp確定Web服務器的會話超時(以秒,分鐘等等爲單位)?我試着查看HttpSession和System API,但沒有看到用於確定Web服務器會話超時的任何屬性。我知道這個值是在web.xml中設置的,但我正在設計一個java庫,需要通過代碼來確定它。以編程方式確定Java會話超時

注:我正在設計一個通用的Web服務器,不能依賴於供應商特定的擴展。

回答

2

會話的超時由空閒時間確定的,所以沒有辦法知道什麼時候會超時。

然而,就可以計算出下一個可能的假設超時會話不被訪問,

Date expiry = new Date(session.getLastAccessedTime() + session.getMaxInactiveInterval()*1000); 

 

5

在Servlet的使用:

int timeoutInSeconds = request.getSession().getMaxInactiveInterval(); 

在JSP使用:

<p>Timeout in seconds: ${pageContext.session.maxInactiveInterval}</p> 
1

這是代碼來獲取超時值:

<%= session.getMaxInactiveInterval() %>