第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

自定義session掃描器精確控制session銷毀時間--學(xué)習(xí)筆記

標(biāo)簽:
Java

package cn.xijie.listener;import java.util.ArrayList;import java.util.Collections;import java.util.Date;import java.util.List;import java.util.ListIterator;import java.util.Timer;import java.util.TimerTask;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;import javax.servlet.http.HttpSession;import javax.servlet.http.HttpSessionEvent;import javax.servlet.http.HttpSessionListener;//HttpSession扫描器public class SessionScanner implements ServletContextListener,HttpSessionListener{    private List<HttpSession> sessionList = new ArrayList<HttpSession>();    //线程安全    private Timer timer = new Timer();    public SessionScanner(){        //将线程不安全的List转换成线程安全的List        sessionList = Collections.synchronizedList(sessionList);    }    //ServletContext产生    public void contextInitialized(ServletContextEvent sce) {        timer.schedule(new SessionTask(this.sessionList),0,1*1000);    }    //HttpSession产生    public void sessionCreated(HttpSessionEvent se) {        //取得客户端产生的HttpSession        HttpSession session = se.getSession();        System.out.println("HttpSession产生" + session.hashCode() + new Date().toLocaleString());        synchronized (sessionList) {            //将HttpSession加入到容器中            this.sessionList.add(session);        }    }    //ServletContext销毁    public void contextDestroyed(ServletContextEvent sce) {        timer.cancel();    }    //HttpSession销毁    public void sessionDestroyed(HttpSessionEvent se) {        HttpSession session = se.getSession();        System.out.println("HttpSession销毁" + session.hashCode() + new Date().toLocaleString());    }}//任务类class SessionTask extends TimerTask{    private List<HttpSession> sessionList;    public SessionTask(List<HttpSession> sessionList) {        this.sessionList = sessionList;    }    public void run() {        System.out.println("run()");        //迭代集合        //Iterator<HttpSession> it = sessionList.iterator();        synchronized (sessionList) {            ListIterator<HttpSession> it = sessionList.listIterator();            while (it.hasNext()) {                HttpSession session = it.next();                //判段HttpSession是否1分钟未被使用                int middle = (int) ((System.currentTimeMillis() - session                        .getLastAccessedTime()) / 1000);                if (middle > 60) {                    //将该HttpSession销毁                    session.invalidate();                    //从集合中删除该HttpSession ....有可能出现并发问题                    //sessionList.remove(session);                    it.remove();                }            }        }    }}

run()
HttpSession产生6027721002018-4-20 14:47:32
run()
)
run()
run()
run()
HttpSession销毁6027721002018-4-20 14:48:45
run()

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
移動開發(fā)工程師
手記
粉絲
39
獲贊與收藏
245

關(guān)注作者,訂閱最新文章

閱讀免費(fèi)教程

  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消