搜尋
首頁JavaJava基礎詳談Java設定session超時(失效)的時間

詳談Java設定session超時(失效)的時間

免費學習推薦:java基礎教學

在一般系統登入後,都會設定一個目前session失效的時間,以確保在用戶長時間不與伺服器交互,自動退出登錄,銷毀session
具體設定的方法有三種:
1.在web容器中設定(以tomcat為例)
在tomcat -7.0\conf\web.xml中設置,以下是tomcat7.0中預設配置:

<session-config>
    <session-timeout>30</session-timeout>
</session-config>

tomcat預設session逾時時間為30分鐘,可以根據需要修改,負數或0為不限制session失效時間

這裡要注意這個session設定的時間是根據伺服器來計算的,而不是客戶端。所以如果在調試程序,應該是修改伺服器端時間來測試,而不是客戶端

2.在工程的web.xml中設定

<!--时间单位为分钟-->
<session-config>
    <session-timeout>15</session-timeout>
</session-config>

這裡的15是指15分鐘失效

3.透過java程式碼設定

session.setMaxInactiveInterval(30*60);//以秒为单位,即在没有活动30分钟后,session将失效

三種方式優先等級:1

在一般系統中,也可能需要在session失效後做一些操作:
1.控制用戶數,當session失效後,系統的用戶數減少一個,控制用戶數量在一定範圍內,確保系統的性能
2.控制一個用戶多次登錄,當session有效時,如果相同使用者登錄,就提示已經登入了,當session失效後,就可以不同提示,直接登入
那麼如何在session失效後,進行一系列的操作呢?
這裡就需要用到監聽器了,也就是當session因為各種原因失效後,監聽器就可以監聽到,然後執行監聽器中定義好的程式就可以了
監聽器類別為:HttpSessionListener類,有sessionCreated和sessionDestroyed兩個方法
自己可以繼承這個類,然後分別實現
sessionCreated指在session創建時執行的方法
sessionDestroyed指在session失效時執行的方法
例子:

public class OnlineUserListener implements HttpSessionListener{
    public void sessionCreated(HttpSessionEvent event){
        HttpSession session=event.getSession;
        String id=session.getId()+session.getCreationTime();
        SummerConstant.UserMap.put(id,Boolean.TRUE);//添加用户
    }
    
    public void sessionDestroyed(HttpSessionEvent event){
        HttpSession session=event.getSession;
        String id=session.getId()+session.getCreationTime();
        synchronized(this){
            SummerConstant.USERNum--;//用户数减-
            SummerConstant.UserMap.remove(id);//从用户组中移除掉,用户组为一个map
        }
    }
}

然後只要把這個監聽器在web.xml中宣告就可以了

<listener>
    <listener-class>com.demo.OnlineUserListener</listener-class>
</listener>

相關學習推薦:java基礎

以上是詳談Java設定session超時(失效)的時間的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境