利用HttpSessionBindingListener接口,编写一个在线人数统计的程序。
   (1)当一个用户登录后,显示欢迎信息,同时显示出当前在线的总人数和用户名单。
    (2)当一个用户退出登录或者Session超时值发生时,从在线用户名单中删除这个用户,同时将在线的总人数减一

解决方案 »

  1.   

    在session里面放一个变量就可以了。一个static的变量来存储在线人数。至于用户名单,很简单的,你直接在用户登陆的时候把验证过允许登陆的用户名放到一个ArrayList或者HashMap里面不就好了。还有一种办法,声明一个static的HashMap,一登陆就把验证过的用户名丢进去,最后总人数就是这个HashMap的size。退出的时候以及你设定的session超时的时候,可以在这个会话的destory方法里面写点东西,让他说点遗言,也就是在HashMap里面把这个人给去掉。
      

  2.   

    1
    楼说的很对的!我们老师也这样说,用不上数据库吧!!<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>可以帮我写出servlet代码吗?我初学者很迷茫。
      

  3.   

    题目中已经说的很清楚了啊,用HttpSessionBindingListener接口!
    1. 建立一张简单的在线用户表,一旦有用户登录,就在表中插入一条记录(或者在你的用户表中加一个status字段,来标识是否登录)
    2. 在web.xml中设置Session的过期时间
    3. 实现HttpSessionBindingListener接口,在unBound方法中删除(或修改)表中的数据
    这样就可以了
      

  4.   

    如果你只是要完成一个作业的话,完全可以用一楼朋友的方法!在你的Servlet里面定义一个static的Map
    我说的是实际应用。