首页 » PHP教程 » phpsession实现踢人技巧_大年夜牛说|怎么样用Servlet监听器实现在线踢人功能

phpsession实现踢人技巧_大年夜牛说|怎么样用Servlet监听器实现在线踢人功能

访客 2024-11-14 0

扫一扫用手机浏览

文章目录 [+]

码大牛,成长于传智播客和黑马程序员的专家型顾问。
大牛老师从本日开始推出一个固定栏目,推出关于技能、传授教化话题的干货和想法。
每周二、周四,大牛老师会在微信"大众年夜众号(boxuegu)和QQ(2011168841)空间同步更新。

公众号回答“0321”

phpsession实现踢人技巧_大年夜牛说|怎么样用Servlet监听器实现在线踢人功能

获取“监听器(实现在线统计人数,踢人)”代码网址链接

phpsession实现踢人技巧_大年夜牛说|怎么样用Servlet监听器实现在线踢人功能
(图片来自网络侵删)

不管是教课的老师还是企业事情职员,大体都明白编写程序常常采取不同的框架,乃至还有用自己写得框架做项目,如果此时你要不懂Servlet ,那么你就很难学会其他的框架。
本日我们来讲的便是Servlet中的监听器,分别从定义、事理和实例给您全方位讲解。

什么是Servlet事宜监听器?

监听器便是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java工具的方法调用或属性改变,当被监听工具发生上述事宜后,监听器某个方法将立即被实行。

在Servlet规范中定义了多种类型的监听器,它们用于监听的事宜源分别为 ServletContext, HttpSession 和ServletRequest 这三个域工具。
Servlet规范针对这三个工具上的操作,又把这多种类型的监听器划分为以下三种类型。

1. 监听三个域工具创建和销毁的事宜监听器;

2. 监听域工具中属性的增加和删除的事宜监听器;

3. 监听绑定到HttpSession 域中的某个工具的状态的事宜监听器。

大略的说:监听器便是一段java程序,用来监听另一个java工具方法调用和属性改变。

监听事理是什么?

记住以下四点:

1. 存在事宜源;

2. 供应监听器;

3. 为事宜源注册监听器;

4. 操作事宜源,产生事宜工具,将事宜工具通报给监听器,并且实行监听器相应监听方法。

你也可以记一下Servlet中8个监听器接口:

如何用Servlet监听器实现仿照在线踢人?

思路如下:

1. 实现登录功能

由于这里没有连接数据库,我们须要创建一个类UserDB.java,在该类中创建一个Map来存放合法用户的信息,也便是说在登录时判断该类中是否包含的输入的用户名,包含可登录成功,否则登录失落败。
登录成功的用户信息存放到session中。

2. 保存用户的session

每个用户登录后都会有自己的session,我们须要在ServletContext中保存用户的session,可以监听session属性。
如果session中添加了用户,我们把该用户以及它对应的session保存到ServletContext中,创建User.java用户属性类,并且该类实现HttpSessionBindingListener接口,实行绑定操作。

3. 那么用什么办法保存用户的session

由于一个用户对应一个session,以是这里我们用Map<String,HttpSession>类型的map来保存。
须要把稳的是,由于任何用户登录时都须要用到这个map,而tomcat启动是会创建ServletContext,以是map该当在tomcat启动时初始化,这时创建一个监听器InitDataServletContextListener.java,实现ServletContextListener接口,用来初始化map。

4. 末了得到指定用户的session,将登录状态移除。

实现步骤:

1. 创建index.jsp页面

页面紧张包含两个链接,登录和查询所有登任命户。

2. 创建 login.jsp登录页面

该页面可以输入用户名,点击登录按钮,由于只是仿照登录,根据用户名判断,没有加人输入密码功能。

3. 创建UserDB.java类

在该类中 创建一个Map存放合法用户的数据。

4. 创建LoginServlet.java类

该类用来在登录时吸收用户名,判断其合法性,并且掌握页面跳转。

5. 创建InitDataServletContextListener.java 类

用于初始化用户数据

6. 创建User.java类

第一吸收用户属性,如用户名、密码、用户昵称,第二实现HttpSessionBindingListener接口,该类中有两个主要的方法,contextInitialized(ServletContextEvent sce)方法用于在用户登录成功时向map(用户缓存区)添加用户,contextDestroyed(ServletContextEventsce)方法是在用户登录状态被移除时,从map中删除该用户。

7. 在Web.xml 注册数据初始化监听器

8. 创建Showuser.jsp页面

(查询所有用户界面) 显示用户列表, 每条数据后有“踢出”按钮。
点击该按钮,要求提交到KickServlet.java

9. 创建KickServlet.java类

该类用于实行“踢人”操作, 实际上是将Map中的某个用户根据用户名(key)删掉。

至此,踢出成功!

思考题:请您描述一下java事宜监听机制?

欢迎留言,答案将在文章下面评论区公布!

阅读更多

传授教化好助手(boxuegu)

教IT、学IT都会关注的"大众年夜众号

相关文章

介绍洗碗机,高效便捷的现代厨房助手

随着科技的不断发展,厨房电器逐渐成为现代家庭不可或缺的助手。其中,洗碗机作为厨房中的重要成员,以其高效便捷的特点,赢得了越来越多消...

PHP教程 2025-01-03 阅读0 评论0

介绍毒软件,危害与防范之路

随着互联网的普及,电脑和手机已经成为我们生活中不可或缺的工具。在享受便捷的我们也面临着来自网络的安全威胁。其中,毒软件(恶意软件)...

PHP教程 2025-01-03 阅读0 评论0

介绍比特股挖掘,技术探索与市场机遇

随着区块链技术的不断发展,越来越多的投资者将目光投向了比特股(BitShares)这一去中心化金融(DeFi)平台。比特股作为全球...

PHP教程 2025-01-03 阅读0 评论0

介绍欧普灯拆解,探索现代照明艺术的奥秘

欧普灯,作为现代家居照明的重要元素,以其独特的造型和时尚的设计,深受广大消费者的喜爱。对于大多数人来说,欧普灯的内部构造和拆解方法...

PHP教程 2025-01-03 阅读0 评论0