利用定时器定时删除服务器端保存的Session
对于一个Web应用,N个用户访问就会产生N个Session,但如果成千上万的用户进行访问,总不能服务器一直保存所有的Session。就想是不是可以通过计算当前系统时间和上一次访问时间进行计算,如果超出一定的时间,那么就删除Session
我们使用监听器Listener监听Session对象和ServletContext对象
package com.itdream.listener;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import java.util.List;
/**
* 监听HttpSession对象
* Created by Dream on 2017/12/7.
*/
public class MySessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
//通过事件源对象获得事件源
HttpSession session = httpSessionEvent.getSession();
//通过session对象获取servletContext对象
ServletContext application = session.getServletContext();
List<HttpSession> list = (List<HttpSession>) application.getAttribute("sessions");
list.add(session);
}
@Override
public void