Java到期提醒功能 javasession設(shè)定過(guò)期時(shí)間
Java設(shè)定session超時(shí)(無(wú)效)時(shí)間
一般系統(tǒng)登錄后,會(huì)設(shè)置當(dāng)前session失效的時(shí)間,以保證客戶長(zhǎng)時(shí)間不與服務(wù)器互動(dòng),自動(dòng)退出登錄并銷毀session。
有三種具體的設(shè)置方法:
設(shè)置web容器(以tomcat為例)
7.0\/tomcatconf\web.在xml中設(shè)置,默認(rèn)配置如下:tomcat7.0:
1 2 3 |
|
默認(rèn)情況下,tomcatsession的超時(shí)時(shí)間為30分鐘,可根據(jù)需要進(jìn)行修改,負(fù)值或0不限制session的失效時(shí)間。
這里需要注意的是,session的設(shè)置時(shí)間是根據(jù)服務(wù)器而不是客戶端來(lái)計(jì)算的。因此,如果您正在調(diào)試程序,您應(yīng)該修改服務(wù)器的時(shí)間來(lái)檢測(cè)它,而不是客戶端。
二是工程web.設(shè)置在xml中
1 2 3 |
|
這里的15指15分鐘失效。
設(shè)置java代碼3.
session.setMaxInactiveInterval(30*60);//以秒為基準(zhǔn),即session在沒(méi)有活動(dòng)30分鐘后會(huì)失效。
三種方法優(yōu)先級(jí):1 < 2 < 3< 2 < 3
一般系統(tǒng)中,session失效后也可能需要做一些操作:
控制用戶數(shù)量,當(dāng)session失效時(shí),系統(tǒng)的用戶數(shù)量減少一個(gè),控制用戶數(shù)量在一定范圍內(nèi),確保系統(tǒng)的性能。
控制一個(gè)客戶多次登錄,當(dāng)session有效時(shí),如果同一用戶登錄,則提示已登錄,當(dāng)session失效時(shí),可以直接登錄。
那怎樣在session失效后,進(jìn)行一系列的操作呢?
這里需要使用監(jiān)聽器,也就是說(shuō),當(dāng)session因?yàn)楦鞣N原因失效時(shí),監(jiān)聽器可以監(jiān)控,然后執(zhí)行監(jiān)控器中定義的程序。
監(jiān)控類別為:HttpSessionListener類,有sessionCreated和sessionDestroyed兩種方法。
你可以自己繼承這一類,然后各自實(shí)現(xiàn)。
sessionCreated是指在session建立時(shí)實(shí)施的方法。
sessionDestroyed是指在session失效時(shí)實(shí)施的方法。
例子:
1 public class OnlineUserListener implements HttpSessionListener{
2 public void sessionCreated(HttpSessionEvent event){
3 HttpSession session=event.getSession;
4 String id=session.getId() session.getCreationTime();
5 SummerConstant.UserMap.put(id,Boolean.TRUE);//添加用戶
6 }
7
8 public void sessionDestroyed(HttpSessionEvent event){
9 HttpSession session=event.getSession;
10 String id=session.getId() session.getCreationTime();
11 synchronized(this){
12 SummerConstant.USERNum--;//用戶數(shù)量減少-
13 SummerConstant.UserMap.remove(id);//從用戶組中移除,用戶群是map
14 }
15 }
16 }
接著只要把這個(gè)監(jiān)聽器放在web上。.只需在xml中聲明即可
本文僅代表作者觀點(diǎn),版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請(qǐng)?jiān)谖闹凶⒚鱽?lái)源及作者名字。
免責(zé)聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)及時(shí)與我們聯(lián)系進(jìn)行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com