2009-09-10 289 views
7

任何人都知道如何設置會話超時超過30分鐘? 這兩種方法不會工作(默認爲30分鐘)。如何設置超過30分鐘的會話超時

<session-config> 
<session-timeout>60</session-timeout> 
</session-config> 

session.setMaxInactiveInterval(600); 

感謝。

+0

您正在使用哪個應用程序服務器? Tomcat,JBoss等? – Kosi2801 2009-09-10 16:23:28

+0

我正在使用Tomcat,也想知道如何爲Glassfish做 – Switch 2009-09-10 16:29:19

+4

那麼,沒有正確答案? – Alfabravo 2012-03-01 20:38:11

回答

0

在web.xml中設置超時是設置超時的正確方法。

+0

是的我知道,但它不會讓我設置超過30分鐘的會話超時。 – Switch 2009-09-10 16:31:11

+0

你是什麼意思「它不會讓你」?它會拋出異常嗎?防止服務器啓動?彈出錯誤對話框?或者只是看起來不尊重設置的超時? 在部署描述符中設置超時可能需要重新啓動Web應用程序和/或服務器才能使新值生效。我不明白什麼會影響在會話上調用setMaxInactiveInterval,儘管...也許別的是設置setMaxInactiveInterval或使會話無效? – Nate 2009-09-10 16:51:44

+0

@Rocky - 和Nate一樣的問題。 「你不會讓我」是什麼意思? – 2009-09-10 19:05:05

0

,如果你被允許在全球範圍內做到這一點,那麼你可以設置會話超時在

TOMCAT_HOME/conf目錄/ web.xml文件,如下

<!-- ==================== Default Session Configuration ================= --> 
    <!-- You can set the default session timeout (in minutes) for all newly --> 
    <!-- created sessions by modifying the value below.      --> 


<session-config> 
     <session-timeout>60</session-timeout> 
</session-config> 
+1

我認爲,它爲任何不提供值的Web應用程序設置默認值 - 既在其部署描述符中爲特定Web應用程序設置默認值,也爲特定會話調用setMaxInactiveInterval應覆蓋此值。 – Nate 2009-09-10 16:46:55

6

通過部署描述符設置會話超時應該工作 - 它爲Web應用程序設置默認會話超時。調用session.setMaxInactiveInterval()會爲它所調用的特定會話設置超時,並覆蓋默認值。請注意單位差異 - 部署描述符版本使用分鐘數,而session.setMaxInactiveInterval()使用秒數。

所以

<session-config> 
    <session-timeout>60</session-timeout> 
</session-config> 

設置默認的會話超時60分鐘。

而且

session.setMaxInactiveInterval(600); 

設置會話超時爲600秒 - 10分鐘 - 爲特定的會話,它被稱爲上。

這應該在Tomcat或Glassfish或任何其他Java Web服務器中工作 - 這是規範的一部分。

+1

爲什麼框架設計者拒絕理解使用單位的好處,這真的很神祕。與單位合作的一個很好的框架是UCUM(http://unitsofmeasure.org)。 – whaefelinger 2013-08-25 10:48:56

1

這將設置你的會話保持,直到一切都在瀏覽器關閉

session.setMaxinactiveinterval(-1); 

,這應該設置1天

session.setMaxInactiveInterval(60 * 60 * 24);

6

如果你想永不過期會話使用0或負值-1

<session-config> 
    <session-timeout>0</session-timeout> 
</session-config> 

或提1440表示1440 minutes [24hours * 60 minutes]

<session-config> 
    <session-timeout>1440</session-timeout><!-- 24hours --> 
</session-config> 

會話將24hours之後到期。