溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Session過(guò)期時(shí)間怎么設(shè)置

發(fā)布時(shí)間:2022-09-28 15:51:39 來(lái)源:億速云 閱讀:1438 作者:iii 欄目:編程語(yǔ)言

這篇“Session過(guò)期時(shí)間怎么設(shè)置”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“Session過(guò)期時(shí)間怎么設(shè)置”文章吧。

具體設(shè)置很簡(jiǎn)單,方法有三種:

1.在主頁(yè)面或者公共頁(yè)面中加入:session.setMaxInactiveInterval(900);

參數(shù)900單位是秒,即在沒(méi)有活動(dòng)15分鐘后,session將失效。設(shè)置為-1將永不關(guān)閉。

這里要注意這個(gè)session設(shè)置的時(shí)間是根據(jù)服務(wù)器來(lái)計(jì)算的,而不是客戶端。所以如果是在調(diào)試程序,應(yīng)該是修改服務(wù)器端時(shí)間來(lái)測(cè)試,而不是客戶端。

2.也是比較通用的設(shè)置session失效時(shí)間的方法,就是在項(xiàng)目的web.xml中設(shè)置

<lt;session-config> 

<lt;session-timeout&gt;15&lt;/session-timeout> 

<lt;/session-config> 

這里的15也就是15分鐘失效.

3.直接在應(yīng)用服務(wù)器中設(shè)置,如果是tomcat,可以在tomcat目錄下conf/web.xml中

找到&lt;session-config&gt;元素,tomcat默認(rèn)設(shè)置是30分鐘,只要修改這個(gè)值就可以了,負(fù)數(shù)或0為不限制session失效時(shí)間。

如圖:

Session過(guò)期時(shí)間怎么設(shè)置

需要注意的是如果上述三個(gè)地方如果都設(shè)置了,有個(gè)優(yōu)先級(jí)的問(wèn)題,從高到低: 
(1)>(2)>(3)

session的過(guò)期時(shí)間計(jì)算是從當(dāng)前session的最后一次請(qǐng)求開(kāi)始的。

下面是測(cè)試代碼:

第一步:配置web.xml(設(shè)置失效時(shí)間,和監(jiān)聽(tīng)路徑)

1.失效時(shí)間單位是分鐘,即1分鐘后失效

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

2.設(shè)置監(jiān)聽(tīng)路徑 (監(jiān)聽(tīng)類所在的全路徑)

<listener> 
 <listener-class> 
 com.controller.SessionListener 
 </listener-class> 
 </listener>

3.新建監(jiān)聽(tīng)類,代碼如下

package com.controller;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;import org.springframework.stereotype.Controller;public class SessionListener implements HttpSessionListener{ 
public void sessionCreated(HttpSessionEvent event) { 
HttpSession ses = event.getSession(); 
String id=ses.getId()+ses.getCreationTime(); 
System.out.println("1111111111111"); //創(chuàng)建會(huì)話時(shí)輸出 } 
 
 
public void sessionDestroyed(HttpSessionEvent event) { 
HttpSession ses = event.getSession(); 
String id=ses.getId()+ses.getCreationTime(); 
synchronized (this) { 
System.out.println("2222222222222");//失效時(shí)輸出} 
} 
}

以上就是關(guān)于“Session過(guò)期時(shí)間怎么設(shè)置”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI