监听器:统计在线人数

        接着,我来写一个监听器的案例来巩固学习监听器的知识,便于日后的查阅和复习。大概分为以下几个步骤:

1.编写统计人数的Servlet,实现特定的监听器接口

2.编写好监听器接口后,在web.xml中注册间监听器(ServletContext、HttpSession、ServletRequest、HttpSessionAttributeL等)都在web.xml中使用<listener><listener-class>监听器的全路径</listener-class></listener>注册。

3.编写jsp跳转,访问,统计结果。


实验代码:

1.CountTotalNumberOfPeople.java

package com.nyist.cn.Example;



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

public class CountTotalNumberOfPeople implements HttpSessionListener{
int count = 0;
@Override
public void sessionCreated(HttpSessionEvent se) {
ServletContext context = se.getSession().getServletContext();
Integer count = (Integer)context.getAttribute("count");
if(count == null){
count = 1;
context.setAttribute("count",count);
}else {
count++;
context.setAttribute("count",count);
}
}

@Override
public void sessionDestroyed(HttpSessionEvent se) {
ServletContext context = se.getSession().getServletContext();
Integer count = (Integer)context.getAttribute("count");
count--;
context.setAttribute("count",count);
}

}

2.index.jsp

<style type="text/css">

span{
color: block;
font-family: '微软雅黑';
font-size: 17px;
}
</style>
    <span>当前在线用户:&nbsp;${applicationScope.count }人&nbsp;</span>
  </body>

<body>

注意:session的闲置链接时长为30分钟,我在web.xml中使用<session-config><session-timeout>1</session-timeout></session-config>修改了session的闲置链接时长为1分钟。闲置时长为在1分钟内无任何操作,session链接讲自动销毁

结果:

当前在线用户: 2人 


猜你喜欢

转载自blog.csdn.net/lvhaoguang0/article/details/81063282