spring-boot通过HttpSessionListener监听器统计在线人数
2016-12-15 15:13
453 查看
首先说下,这个统计在线人数有个缺陷,一个人在线可以同时拥有多个session,导致统计有一定的不准确行。
接下来,开始代码的编写,
第一步:实现HttpSessionListener中的方法,加上注解@WebListener
@WebListener
public class SessionListener implements HttpSessionListener{
public void sessionCreated(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
ServletContext context = arg0.getSession().getServletContext();
if (context.getAttribute("count")==null) {
context.setAttribute("count", 0);
}else {
int count = (Integer) context.getAttribute("count");
context.setAttribute("count", count+1);
}
}
public void sessionDestroyed(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
ServletContext context = arg0.getSession().getServletContext();
if (context.getAttribute("count")==null) {
context.setAttribute("count", 0);
}else {
int count = (Integer) context.getAttribute("count");
if (count<1) {
count = 1;
}
context.setAttribute("count", count-1);
}
HttpSession session = arg0.getSession();
String name = (String) session.getAttribute("name");
HashSet<String> nameSet = (HashSet<String>) context.getAttribute("nameSet");
nameSet.remove(name);
}
}
第二步:控制创建session放入对象
HttpSession session = request.getSession();
session.setAttribute("name", name);
Object count = context.getAttribute("count");
if (count==null) {
count = 0;
}
第三步:启动类加上注解@ServletComponentScan,这样才能扫描到监听器
说明,此代码适用于spring-boot开发
简单说下,javaWeb中配置监听器在web.xml中加上
<listener>
<listener-class>zjq.listener.SessionListener</listener-class>
</listener>
接下来,开始代码的编写,
第一步:实现HttpSessionListener中的方法,加上注解@WebListener
@WebListener
public class SessionListener implements HttpSessionListener{
public void sessionCreated(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
ServletContext context = arg0.getSession().getServletContext();
if (context.getAttribute("count")==null) {
context.setAttribute("count", 0);
}else {
int count = (Integer) context.getAttribute("count");
context.setAttribute("count", count+1);
}
}
public void sessionDestroyed(HttpSessionEvent arg0) {
// TODO Auto-generated method stub
ServletContext context = arg0.getSession().getServletContext();
if (context.getAttribute("count")==null) {
context.setAttribute("count", 0);
}else {
int count = (Integer) context.getAttribute("count");
if (count<1) {
count = 1;
}
context.setAttribute("count", count-1);
}
HttpSession session = arg0.getSession();
String name = (String) session.getAttribute("name");
HashSet<String> nameSet = (HashSet<String>) context.getAttribute("nameSet");
nameSet.remove(name);
}
}
第二步:控制创建session放入对象
HttpSession session = request.getSession();
session.setAttribute("name", name);
Object count = context.getAttribute("count");
if (count==null) {
count = 0;
}
第三步:启动类加上注解@ServletComponentScan,这样才能扫描到监听器
说明,此代码适用于spring-boot开发
简单说下,javaWeb中配置监听器在web.xml中加上
<listener>
<listener-class>zjq.listener.SessionListener</listener-class>
</listener>
相关文章推荐
- spring-boot 统计实时在线人数
- springboot 用监听器统计在线人数案例分析
- spring boot + webSocket 实现简单会话与在线人数统计的demo
- java web 项目中通过session 统计在线访问人数
- Spring boot通过HttpSessionListener监听器统计在线人数的实现代码
- 通过监听器实现在线人数统计
- spring boot通过Interceptor和HandlerMethodReturnValueHandler实现统一处理为controller返回对象统计处理时间
- 通过session统计当前在线人数
- php通过cookie统计在线人数
- 通过python爬虫统计?站此时直播在线总人数
- 通过Application统计网站访问人数和在线人数
- 最大在线人数统计
- 如何统计在线人数
- 在线人数统计方法
- 利用HttpSessionListener实现网站在线人数统计功能
- 利用HttpSessionListener实现网站在线人数统计功能
- HttpSessionListener统计在线人数 [转]
- [C#]统计在线人数
- asp论坛在线人数统计研究
- asp论坛在线人数统计研究