统计在线人数

package com.caizhen.listener;

import javax.servlet.ServletContext;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

@WebListener
public class OnlineListener implements HttpSessionListener {
	private int count = 0;

	public OnlineListener() {

	}

	public void sessionCreated(HttpSessionEvent se) {

		count++;
		ServletContext context = se.getSession().getServletContext();
		context.setAttribute("count", new Integer(count));
	}

	public void sessionDestroyed(HttpSessionEvent se) {

		count--;
		ServletContext context = se.getSession().getServletContext();
		context.setAttribute("count", new Integer(count));
	}

}

运用了servlet监听器,将conur存在context里

<listener>
  <listener-class>com.caizhen.listener.OnlineListener</listener-class>
  </listener>

在web.xml配置监听器

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
当前在线人数<%=application.getAttribute("count") %></br>
<a href="<%=response.encodeRedirectUrl("logout.jsp") %>">退出登陆</a>
</body>
</html>

 获取count

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%session.invalidate(); %>
当前在线人数<%=application.getAttribute("count") %>
<p>你已经退出本系统</p>
</body>
</html>

使session对象失效

运行项目即可

猜你喜欢

转载自blog.csdn.net/cainame/article/details/81230369