Java多人在线聊天室(3)— 踢人下线功能


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


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



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


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



效果:


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



现来来写踢人的 servlet 吧!


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

1.拿到想踢的人的id

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

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

4.销毁他的 session

5.刷新一下页面



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



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



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


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



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



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



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


在我的聊天室里!

我还踢不了你了!


那么今天就到这里了

再见了




©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文包括:1、Listener简介2、Servlet监听器3、监听三个域对象创建和销毁的事件监听器4、监听三个域对...
    廖少少阅读 6,119评论 6 28
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,341评论 11 349
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 13,887评论 0 15
  • 谈谈创业 创业这东西,没钱,没人,只能靠自己。 伤愈后打算全心全意撸代码,闭关一个月。 是时候重新整俩大屏了! 清...
    趾骨的静养阅读 221评论 0 1
  • 早餐时被同事姐姐劝说,能不能敷个面膜保养一下自己,改善一下状态。中午恰巧看到高中好友的简书推荐文章《你的商...
    彩云易散阅读 268评论 0 0