黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 實(shí)現(xiàn)Session時間永久有效的方法

實(shí)現(xiàn)Session時間永久有效的方法

更新時間:2021-11-18 10:07:31 來源:動力節(jié)點(diǎn) 瀏覽1498次

原理:在B/S系統(tǒng)中,如果用戶在Session超時時間前與服務(wù)器進(jìn)行了交互,那么將不會超時。所以我們只要模擬用戶在Session超時前和服務(wù)器進(jìn)行交互就可以實(shí)現(xiàn)Session的永久有效。

具體實(shí)現(xiàn):網(wǎng)路上有很多中方法實(shí)現(xiàn)了以上原理,從而實(shí)現(xiàn)了Session的永久有效。我也是參考了眾多方法,然后將我嘗試成功的一個方法記錄一下。

1. 將如下JavaScript代碼放置在系統(tǒng)使用中一直顯示的頁面中,如在框架頁面中,你可以將如下代碼放置在Banner框架、Bottom框架、左側(cè)一直顯示的菜單框架,或者是一個隱藏框架中。如果是非框架頁面,那么可以放置在不會被用戶關(guān)閉的頁面中,如主菜單頁面。這樣的目的是保證頁面始終存在,從而其中的JavaScript代碼可以是中在執(zhí)行。

<!-- 用于從服務(wù)器上請求.aspx文件的JavaScript腳本塊; -->
 < script language = " javascript "  id = " KeepSessionAliveScriptBlock " >
 </ script >
 < script language = " javascript " >
    // 用于循環(huán)調(diào)用服務(wù)器.aspx文件的JavaScript函數(shù);
     keepSessionAlive();
 </ script >

2. 在.js文件中添加keepSessionAlive()函數(shù),函數(shù)體如下:

 /**
   *summary: 通過定時請求服務(wù)器的某個頁面(.aspx)文件來保證Session不會超時。
 *created: liguozhu(李國珠)
   *modifty,content: [修改者,修改內(nèi)容說明]
   *
   *created time: 2007-11-22
   */
    function  keepSessionAlive()
    {
        document.all["KeepSessionAliveScriptBlock"].src = "/BJAssess/YearAssessSubSystem/Resource/WebForm3.aspx?RandStr="+Math.random();
        //這里的RandStr=Math.random只是為了讓每次back.src的值不同,防止同一地址刷新無效的情況
        window.setTimeout("keepSessionAlive()",30000); 
   }

這里document.all["KeepSessionAliveScriptBlock"] 這里引用了頁面上<script language="javascript" id="KeepSessionAliveScriptBlock"></script>的程序塊對象,其中的src屬性指向的是需要打開的文件。一般src 應(yīng)該指向的是.js文件,這個效果就是將js文件中的內(nèi)容加入到程序塊中,然后再進(jìn)行執(zhí)行。如:src = "testJS.js", 而testJS.js文件中如果有一句window.alert("Life Is Good!");,那么執(zhí)行了代碼后頁面會彈出"Life Is Good"的信息提示框。其實(shí)javascript程序塊的src屬性并不會在意引用的是否是.js文件,它僅僅是打開指定的文件,然后將文件內(nèi)容按照J(rèn)avaScript的方式進(jìn)行執(zhí)行,當(dāng)然如果你打開文件的內(nèi)容中不是合法的JavaScript內(nèi)容,那么將不執(zhí)行內(nèi)容。

這里設(shè)置src的頁面路徑需要注意的是為了防止各個調(diào)用頁面的路徑不同,這里建議采用自上而下的路徑方式,如例子中的路徑就是BJAssess項(xiàng)目,然后一級級的找到需要調(diào)用的.aspx頁面文件。為了放置IE讀取緩存的情況,這里在讀取.aspx頁面文件的URL中增加一個隨機(jī)數(shù)。

window.setTimeout用于定時(例子中設(shè)置的是3000毫秒,即半分鐘)重復(fù)執(zhí)行keepSessionAlive()一次,這里的時間可以自行設(shè)置為小于Session超時的任何時間。這個每隔半分鐘的請求WebForm3.aspx頁面的操作就是實(shí)現(xiàn)了前面“原理”中描述模擬用戶操作和服務(wù)器進(jìn)行交互,從而保證Session不超時的功能。

3. 在對應(yīng)的路徑下建立一個用于請求的.aspx頁面文件,例子中是WebForm3.aspx。這里需要在HTML源碼模式將所有HTML代碼刪除,因?yàn)槿绻粍h除這些代碼,ASP.NET在解析.aspx文件后會產(chǎn)生一個完整的HTML頁面代碼,這樣如果再嵌到前面的<script language="javascript"></script>腳本塊中就會由于<html>, <head>, <body>

等標(biāo)簽出現(xiàn)重復(fù)而保錯,在IE中顯示的錯誤是“語法錯誤”。寫到這里,可能會有人說既然不能產(chǎn)生完整的HTML頁面代碼,那么為什么不直接使用.ascx(用戶自定義Web控件)呢?直接請求.ascx是不行的,我目前想到的原因是“你在瀏覽器中是無法直接請求一個.ascx文件的”,如果你在瀏覽器中直接請求.ascx那么瀏覽器會返回?zé)o法訪問的錯誤。所以你在javascript.src = "xxx.ascx"文件的時候,實(shí)際上是請求不成功的。

到此為止實(shí)現(xiàn)永久Session的步驟就完成了。這里還需要特別說明一下,在網(wǎng)絡(luò)上看到有些帖子說需要在請求的頁面,如:.aspx頁面中調(diào)用代碼Session("xxx") = "xxx"。其中Session("xxx")是隨便的一個Session值,目的是為了調(diào)用Session來保證Session不過期,實(shí)際上這個操作是沒有必要的,原因是(在.NET Framework 1.1的環(huán)境下)在請求系統(tǒng)頁面的時候,如最常見的是請求Login.aspx界面,這個時候針對此次回話的SessionID和Session就已經(jīng)生成了,其他所有的Session("xxx")操作都是對于這個Session列表中具體Item的操作。所以只要你與服務(wù)器進(jìn)行了交互,那么服務(wù)器就會驗(yàn)證你的SessionID,對應(yīng)的Session是否過期,如果沒有,那么就延后過期時間。

以上就是關(guān)于“實(shí)現(xiàn)Session時間永久有效的方法”的介紹,如果您想了解更多相關(guān)知識,不妨來關(guān)注一下動力節(jié)點(diǎn)的Spring Session教程,里面的課程內(nèi)容豐富,適合沒有基礎(chǔ)的小白學(xué)習(xí),希望對大家能夠有所幫助。

提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲精品一卡2卡3卡三卡四卡 | 一本到高清 | 免费成人黄色片 | 91av在线免费视频 | 日韩骚片 | 一区二区三区四区国产精品 | 日本视频www | 成人看片在线观看 | 欧美精品亚洲精品 | a级在线观看 | 夜夜操夜夜爱 | 欧美综合成人 | 国产91精品一区二区麻豆网站 | 曰批免费视频播放在线看片二 | 亚洲高清视频免费 | 最新在线鲁丝片eeuss第1页 | 糟蹋小少妇17p | 免费v片在线观看视频网站 免费不卡中文字幕在线 | 五月天伊人 | 欧美成国产精品 | 欧美成a高清在线观看www | 色综合色综合 | 欧洲妇女成人淫片aaa视频 | 亚洲一区二区三区高清网 | 白丝挠脚心tk调教vk | 日本三级在线观看免费 | 色综合网址 | 中文字幕亚洲一区二区三区 | 91精品视频在线观看免费 | 韩国一区二区三区 | 美女视频永久黄网站免费观看国产 | 欧美无限看 | 日韩毛片在线视频 | 国产精品自在线拍 | 午夜毛片免费看 | 日本人69视频 | 亚洲free| 视频区小说区图片区激情 | 亚洲欧美日韩高清专区一区 | 欧美xxxx新一区二区三区 | 在线日本三级 |