在线人数统计程序1

作者:孙鑫  来源:程序员之家 www.phome.asia
下面,我们利用 HttpSessionBindingListener 接口,编写一个在线人数统计的程序。当一个用户登录后,显示欢迎信息,同时显示出当前在线的总人数和用户名单。当一个用户退出登录或者 Session 超时值发生时,从在线用户名单中删除这个用户,同时将在线的总人数减 1 。这个功能的完成,主要是利用一个实现了 HttpSessionBindingListener 接口的对象,当这个对象被绑定到 Session 中或者从 Session 中被删除时,更新当前在线的用户名单。 实例的开发主要有以下步骤。

Step1 配置 Web 应用程序的运行目录

%CATALINA_HOME%\conf\Catalina\localhost\ 目录下新建 ch15.xml 文件 输入如例 15-4 所示的内容。

5-4  ch15.xml
<Context docBase="F:\JSPLesson\ch15" reloadable="true"/>

 
Step2 :编写 login.html

 
将编写好的 login.html 文件放到 F:\JSPLesson\ch15\online 目录下。完整的代码如例 15-5 所示

 
15-5  login.html
<html>


 
    <head>

 
        <title> 登录页面 </title>

 
    </head>

 
    <body>

 
        <form action="online" method="post">

 
            <table>

 
                <tr>

 
                    <td> 请输入用户名: </td>

 
                    <td><input type="text" name="user"></td>

 
                </tr>

 
                <tr>

 
                    <td> 请输入密码: </td>

 
                    <td><input type="password" name="password"></td>

 
                </tr>

 
                <tr>

 
                    <td><input type="reset" value=" 重填 "></td>

 
                    <td><input type="submit" value=" 登录 "></td>

 
                </tr>

 
            </table>

 
        </form>

 
    </body>

 

</html>
Step3 编写UserList.java User.java OnlineUserServlet.java LogoutServlet.java

为了和 本章其他例子中的 类相区别 ,本例中的类定义在 org. sunxin .ch15.online 包中 。编写 UserList.java User.java OnlineUserServlet.java LogoutServlet.java 源文件 ,将编写好的源 文件 放到 F:\JSPLesson\ch15\src\online 目录下。

UserList.java 的完整代码 如例 15-6 所示

15-6  UserList.java

1 package org. sunxin .ch15.online;


2

3 import java.util.Vector;

4 import java.util.Enumeration;

5

6 public class UserList

7 {

8     private static final UserList userList=new UserList();

9     private Vector<String> v;

10    

11    private UserList()

12    {

13        v=new Vector<String>();

14    }

15

16    public static UserList getInstance()

17    {

18        return userList;

19    }

20    

21    public void addUser(String name)

22    {

23        if(name!=null)

24             v.addElement(name);

25    }

26    

27    public void removeUser(String name)

28    {

29        if(name!=null)

30               v.remove(name);

31    }

32    

33    public Enumeration<String> getUserList()

34    {

35        return v.elements();

36    }

37    

38    public int getUserCount()

39    {

40        return v.size();

41    }


42 }

你可能感兴趣的:(职场,休闲)