监听器
监听器
-
Listener :监听器,用于监听用户的操作
-
监测网站在线人数(基于session)
1、编写一个监听器,实现HttpSessionListener
public class ListenerDemo implements HttpSessionListener { /** * 监听session新创建时执行的方法 * @param httpSessionEvent */ @Override public void sessionCreated(HttpSessionEvent httpSessionEvent) { ServletContext servletContext = httpSessionEvent.getSession().getServletContext(); System.out.println("sessionId:" + httpSessionEvent.getSession().getId()); Integer onlineCount = (Integer) servletContext.getAttribute("OnlineCount"); if (onlineCount == null) { onlineCount = 1; } else { onlineCount++; } servletContext.setAttribute("OnlineCount",onlineCount); } /** * 监听session销毁时执行方法 * @param httpSessionEvent */ @Override public void sessionDestroyed(HttpSessionEvent httpSessionEvent) { ServletContext sc = httpSessionEvent.getSession().getServletContext(); Integer onlineCount = (Integer) sc.getAttribute("OnlineCount"); if (onlineCount == null) { onlineCount = 0; } else { onlineCount--; } System.out.println("销毁session了--监听到"); sc.setAttribute("OnlineCount",onlineCount); } } -
在jsp中对人数进行取出展示
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<h1>当前有 <span><%=this.getServletConfig().getServletContext().getAttribute("OnlineCount")%></span>人在线</h1>
</body>
</html>
- 配置对应的web.xml文件
<!-- 注册监听器-->
<listener>
<listener-class>com.saxon.listener.ListenerDemo</listener-class>
</listener>
session销毁方法
- 手动销毁 getSession().invalidate();
- 自动销毁 在web.xml中设置超时时间
<session-config>
<session-timeout>1</session-timeout>
</session-config>

浙公网安备 33010602011771号