java怎么实现踢掉在线用户_Java多人在线聊天室(3)— 踢人下线功能

作为一个聊天室,肯定会有很多人在里面聊天,那么要是有人里面捣乱怎么办?直接踢人不解释。

我们在创建数据库的时候就有这样的考虑,所以我们的账户有两种,一种是管理员,一种是普通用户。

10e19d464d1d1a42ce3ab519812cd8e4.png

打开的数据库!我们可以看见存在两种角色。那么管理员就可以把普通用户踢下线。

首先就是在前端页面添加一个踢人下线的按键

e908fede57297332bba1bc2a7492def8.png

效果:

735720e2b828330b05f15f7038a763d4.png

重写一下 userbean 的 equals() 和 hashCode() 方法,这两个方法可以帮助我们确定帐户。

93ff538729a52fcdce9a017e53d83774.png

现来来写踢人的 servlet 吧!

想要把人踢下线总共分几步?

1.拿到想踢的人的id

2.拿到所有在线的人的列表

3.通过 id 找到这个人的在 Map 中对应的 session

4.销毁他的 session

5.刷新一下页面

ffc7cd6a082eef263d258a50f3d7db76.png

在我们的前端页面来写一下代码

1b1439f8b6b768b1e471a81d1b25bd7f.png

框住的这段内容表示,只有当用户的身份是管理员(admin)并且列表中的这个的身份不是管理员(admin)的时候,才会显示一个"踢"的按键,我们来看一下效果!

9ce908fd77441c888557a68e7837b35d.png

后面的页面登录的是 aaa(admin ) 前面的页面登录的是bbb(user),只有我们的管理员才可以看见这个踢字呦!

那么现在点击“踢”就可以销毁用户的 session,现在写一个 servlet 检查用户的  session,如果用户的 session 不存在,就让他重新登录。

1a78ac193616a7804ffd8f24623d44b1.png

在后台进行判断,如果 session 不存在就返回 1,session 存在就返回 2。写一下 jsp 的页面代码,每1秒钟向后台发送一个 post 请求,然后获取后台 servlet 返回的数据。

d819ef01b8f3dccc1df1177b99f9cb59.png

后台返回1,就代表 session 被销毁了,我们就提示用户“账号已下线”并且把页面转到登录页面。效果验证:

aea808e6f4b53f37973298585273acbc.gif

踢人下线功能就实现了,账户被踢下线之后,就会返回我们的登录页面了。

在我的聊天室里!

我还踢不了你了!

05f3e1e0323d4a66a3bc7f16f5a1147c.png

那么今天就到这里了

再见了

450d99438c28c6a62f953484e1c8c51f.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值