2024年4月28日发(作者:)
Session监控
Session简介
Session即会话,是浏览器和服务器状态的标识,实现Session监控可以让服务器
记录系统Session信息,并对连接到服务器的会话进行操作。
Session监控
Session监控的实现,使用SessionListener可以监听Session的创建,销毁及
Session中属性的变动。由于要监听所有Session,所以采用ServletContext来存储
Session列表。当Session产生时候将Session对象添加到SessionList,当Session
销毁时将Session对象从SessionList中移除。
SessionListener 类
public class SessionListener implements
HttpSessionListener,HttpSessionAttributeListener{}
SessionListener类中方法
public void sessionCreated(HttpSessionEvent httpSessionEvent) {
//处理Session创建,向SessionList中添加Session
}
public void sessionDestroyed(HttpSessionEvent httpSessionEvent)
{
//处理Session销毁,将Session从SessionList中移除
}
public void attributeAdded(HttpSessionBindingEvent
httpsessionbindingevent) {
//监听Session中属性的添加
}
public void attributeRemoved(HttpSessionBindingEvent
httpsessionbindingevent) {
//监听Session中属性的移除
}
public void attributeReplaced(HttpSessionBindingEvent
httpsessionbindingevent) {
//监听Session中属性的改变
}
配置SessionListener
在中添加如下信息:
nListener
根据sessionid销毁Session
算法描述:
遍历SessionList找到id对应的Session对象,调用Session对象的
invalidate()方法销毁Session。
算法实现:
public String destroySession(@RequestParam("id") String
id,HttpServletRequest request) {
HttpSession session = sion();
ServletContext application = vletContext();
List
ribute("sessionList");
HttpSession cur_session = null;
for (HttpSession httpSession : sessionList) {
if(().equals(id)) {
cur_session = httpSession;
}
}
cur_date();
return "success";
}
根据登录名踢出用户
算法描述:
遍历SessionList找到与参数中登录名相同的Session,调用该Session的
removeAttribute()方法将该Session中的用户信息移除。
算法实现:
public String kickOutUser(@RequestParam("loginName") String
loginName,HttpServletRequest request) {
HttpSession session = sion();
ServletContext application = vletContext();
List
ribute("sessionList");
for (HttpSession httpSession : sessionList) {
User currentUser = (User)
ribute(_USER);
if(currentUser!=null
&&inName().equals(loginName)) {
Attribute(_USER);
}
}
return "success";
}
发布评论