最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

設(shè)置session有效時(shí)間的三種方式

 更新時(shí)間:2023年05月11日 10:15:05   作者:晚期鍵怒癥患者  
這篇文章主要介紹了設(shè)置session有效時(shí)間的三種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

設(shè)置session有效時(shí)間的三種方式

session的默認(rèn)有效時(shí)間是30分鐘(min)

方法一

使用java函數(shù):session.setMaxInactiveInterval()

舉例:

設(shè)置的有效期是30分鐘(min)

session.setMaxInactiveInterval(30 * 60); //30分*60秒

注意:以秒(s)為單位。

如果設(shè)置的值為零或負(fù)數(shù),則表示會(huì)話將永不超時(shí)!

方法二

在項(xiàng)目中web.xml的session-config中配置

舉例:

設(shè)置有效期為30分鐘(min)

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

注意:以分鐘為單位,必須為整數(shù)。

如果 session-timeout元素的值為零或負(fù)數(shù),則表示會(huì)話將永不超時(shí)!

方法三

直接在應(yīng)用服務(wù)器中設(shè)置

舉例:

在tomcat安裝目錄中conf/web.xml找到<session-config>元素,tomcat默認(rèn)設(shè)置是30分鐘。

注意:以分鐘為單位,必須為整數(shù)。

如果 session-timeout元素的值為零或負(fù)數(shù),則表示會(huì)話將永不超時(shí)!

這三種方法設(shè)置session有效期的優(yōu)先級(jí)(此處優(yōu)先級(jí)指的是如果1、2、3三種方法同時(shí)使用時(shí)的優(yōu)先級(jí))。  即:1>2>3

session詳細(xì)解析(是否過期、失效時(shí)間)

Session一直是我們做web項(xiàng)目經(jīng)常使用的,以前沒太注意,這次又細(xì)致的看了下!

1.session其實(shí)就是一個(gè)Map,鍵=值對(duì),通過session.getAttribute("name");獲得session中設(shè)置的參數(shù)

2.session的過期時(shí)間是從什么時(shí)候開始計(jì)算的?是從一登錄就開始計(jì)算還是說從停止活動(dòng)開始計(jì)算?

答:從session不活動(dòng)的時(shí)候開始計(jì)算,如果session一直活動(dòng),session就總不會(huì)過期。

從該Session未被訪問,開始計(jì)時(shí); 一旦Session被訪問,計(jì)時(shí)清0;

3.設(shè)置session的失效時(shí)間

  • a) web.xml中
<session-config>?
? ? <session-timeout>30</session-timeout> //單位為分鐘
</session-config>
  • b) 在程序中手動(dòng)設(shè)置
session.setMaxInactiveInterval(30 * 60);//設(shè)置單位為秒,設(shè)置為-1永不過期
  • c) tomcat也可以修改session過期時(shí)間,在server.xml中定義context時(shí)采用如下定義:
<Context path="/livsorder" docBase="/home/httpd/html/livsorder"  
? ? ? ? ?defaultSessionTimeOut="3600" isWARExpanded="true"  
? ? ? ? ?isWARValidated="false" isInvokerEnabled="true"  ? ? ? ??
? ? ? ? ?isWorkDirPersistent="false"/>

4.如何判斷session過沒過期

1) 以前是根據(jù) if (session.getAttribute('user')==null) 判斷是否為空 

2) 如下為看到的一個(gè)帖子,判斷session不為空的好方法:request.getSeesion(boolean)方法,一下子讓我恍然大悟。

這個(gè)方法里面?zhèn)髁艘粋€(gè)boolean值,值為true時(shí),若request中的session不存在,那么就創(chuàng)建新的會(huì)話,如果存在就返回當(dāng)前的會(huì)話;值為false時(shí),若request中的session不存在就返回null。           

這樣我們就可以很容易的聯(lián)想到這個(gè)所謂的request的當(dāng)前會(huì)話是否存在和session過期的聯(lián)系,所以我們就可以“近似地”認(rèn)為session不存在就是session過期了,那么我們就可以很容易地判斷session是否過期了。

方法如下:     

? ? if(request.getSession(false)==null){
? ? ? ?System.out.println("Session has been invalidated!");
? ? }else{
? ? ? System.out.println("Session is active!");
? ? }

可能大家注意到我上面有一個(gè)“近似地”字眼,也就是說存在特別情況。       

這個(gè)特殊情況就是第一次請(qǐng)求還沒有創(chuàng)建會(huì)話的時(shí)候,那么用這個(gè)方法返回的仍然是null。       

也有很多人覺得應(yīng)該使用javax.servlet.http.HttpSessionBindingListener接口來實(shí)現(xiàn)類似功能。       

他們的意思是當(dāng)session創(chuàng)建的時(shí)候session.setAttribute("isActive","yes"),只要session沒有過期,那么我們就可以 session.getAttribute("isActive")==null來判斷,但是如果session過期以后就不能用這個(gè)辦法了,因?yàn)榇藭r(shí)我們使用session.getAttribute()方法就會(huì)拋出java.lang.IllegalStateException,這時(shí)候我們只能通過捕捉這個(gè)異常來進(jìn)行判斷,這會(huì)打亂我們整個(gè)程序的邏輯流程。

當(dāng)然我們也可以在session過期的時(shí)候這樣處理,在HttpSessionBindingListener接口的onValueUnbound()方法里面通過設(shè)置一個(gè)flag來標(biāo)志session已過期,之后都使用這個(gè)flag,那么這個(gè)flag一定是要放在application里面,application是HttpServletContex類的對(duì)象,所以我們必須對(duì)這個(gè)flag加入是哪個(gè)session過期的信息,這樣一來整個(gè)的過程就十分麻煩。      

關(guān)于用監(jiān)聽器實(shí)現(xiàn)我要補(bǔ)充一點(diǎn),我的方法是站在某一個(gè)session的角度來實(shí)現(xiàn)的。如果說要監(jiān)測(cè)多個(gè)session就應(yīng)該站在application的角度來分析,這時(shí)候的最佳選擇就是HttpSessionBindingListener或者HttpSessionListener。     

寫這個(gè)文章的目的就是讓大家在需要判斷的時(shí)候(不管session是否過期都OK)用這樣的一條語句來簡(jiǎn)單的實(shí)現(xiàn)功能,至于意義我們姑且不談。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java?Hutool工具包中HttpUtil的日志統(tǒng)一打印及統(tǒng)一超時(shí)時(shí)間配置

    Java?Hutool工具包中HttpUtil的日志統(tǒng)一打印及統(tǒng)一超時(shí)時(shí)間配置

    Hutool是一個(gè)Java基礎(chǔ)工具類,對(duì)文件、流、加密解密、轉(zhuǎn)碼、正則、線程、XML等JDK方法進(jìn)行封裝,組成各種Util工具類,這篇文章主要給大家介紹了關(guān)于Java?Hutool工具包中HttpUtil的日志統(tǒng)一打印及統(tǒng)一超時(shí)時(shí)間配置的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • Java保留兩位小數(shù)的實(shí)現(xiàn)方法

    Java保留兩位小數(shù)的實(shí)現(xiàn)方法

    這篇文章主要介紹了 Java保留兩位小數(shù)的實(shí)現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • 詳解Spring DI依賴注入的方式和類型

    詳解Spring DI依賴注入的方式和類型

    這篇文章主要介紹了詳解Spring DI依賴注入的方式和類型,DI是由容器動(dòng)態(tài)的將某個(gè)依賴關(guān)系注入到組件之中。依賴注入的目的并非為軟件系統(tǒng)帶來更多功能,而是為了提升組件重用的頻率,并為系統(tǒng)搭建一個(gè)靈活、可擴(kuò)展的平臺(tái),需要的朋友可以參考下
    2023-05-05
  • springboot注冊(cè)bean的三種方法

    springboot注冊(cè)bean的三種方法

    這篇文章主要介紹了springboot注冊(cè)bean的三種方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • IDEA中如何使用注解Test

    IDEA中如何使用注解Test

    這篇文章主要介紹了IDEA中如何使用注解Test問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • logback的isDebugEnabled日志配置級(jí)別源碼解析

    logback的isDebugEnabled日志配置級(jí)別源碼解析

    這篇文章主要為大家介紹了logback的isDebugEnabled日志配置級(jí)別源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • Mybatis常用注解中的SQL注入實(shí)例詳解

    Mybatis常用注解中的SQL注入實(shí)例詳解

    MyBatis是一款優(yōu)秀的持久層框架,它支持定制化 SQL(靈活)、存儲(chǔ)過程(PLSQL模塊化的組件,數(shù)據(jù)庫(kù)的一部分)以及高級(jí)映射(表映射為Bean也可以將Bean映射為表),下面這篇文章主要給大家介紹了關(guān)于Mybatis常用注解中的SQL注入的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • 基于SpringBoot制作一個(gè)PDF切圖小工具

    基于SpringBoot制作一個(gè)PDF切圖小工具

    這篇文章主要為大家詳細(xì)介紹了如何基于SpringBoot制作一個(gè)PDF切圖小工具,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • java中List集合子類特點(diǎn)淺析

    java中List集合子類特點(diǎn)淺析

    java.util.List接口繼承自Collection接口,是單列集合的一個(gè)重要分支,習(xí)慣性地會(huì)將實(shí)現(xiàn)了List接口的對(duì)象稱為L(zhǎng)ist集合,下面這篇文章主要給大家介紹了關(guān)于java中List集合子類特點(diǎn)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • mybatis-plus的SafetyEncryptProcessor安全加密處理示例解析

    mybatis-plus的SafetyEncryptProcessor安全加密處理示例解析

    這篇文章主要為大家介紹了mybatis-plus的SafetyEncryptProcessor安全加密處理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08

最新評(píng)論

湟源县| 华宁县| 合水县| 灵寿县| 贡嘎县| 赤水市| 禹城市| 江城| 利辛县| 屏南县| 巴彦县| 江永县| 涞源县| 汕头市| 闽清县| 彭山县| 呼图壁县| 葵青区| 陆丰市| 循化| 崇明县| 西城区| 甘肃省| 旬阳县| 平陆县| 吉木乃县| 马尔康县| 涟源市| 山阴县| 镇康县| 思茅市| 武穴市| 闻喜县| 巫溪县| 彝良县| 仙桃市| 芮城县| 蓬溪县| 舟山市| 卢龙县| 廉江市|