(✪▽✪)曼波~~~~!欢迎来到曼波的JavaWeb小课堂~(转圈撒花)今天我们要学习像小精灵一样悄悄工作的Listener哦!(๑>ᴗ<๑)
- 曼波比喻:像开学时布置教室的小班长✨
2. 会话小助手(HttpSessionListener)
- 监听每个用户的到来和离开
- 常用魔法:
- 曼波比喻:像游乐园的入园计数器🎢
3. 请求小邮差(ServletRequestListener)
- 监听每个请求的旅程
- 常用魔法:
public void requestInitialized() { //请求到达时 } public void requestDestroyed() { //请求结束时 }
- 曼波比喻:像快递站的包裹扫描机📦
🧁 配置方式甜甜圈
XML配置(传统做法)
<!-- 像在记事本上写规则 -->
<listener>
<listener-class>com.mambo.MyListener</listener-class>
</listener>
注解配置(超方便!)
@WebListener //像贴便利贴一样简单~
public class MyListener implements ServletContextListener {
//...
}
🎯 实战案例:在线人数统计
哦呜(°ロ°)!曼波觉得这个有点难哦,但跟着步骤一定可以!(握拳)
@WebListener
public class KawaiiCounter implements HttpSessionListener {
private static int onlineUsers = 0;
@Override
public void sessionCreated(HttpSessionEvent se) {
onlineUsers++;
System.out.println("(≧∇≦)/ 欢迎!当前在线:" + onlineUsers);
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
onlineUsers--;
System.out.println("(>﹏<) 有人离开了...剩余:" + onlineUsers);
}
}
效果:当用户访问网站时会自动统计人数哦~(๑˃̵ᴗ˂̵)و
💡 使用场景脑暴
- 应用启动时 → 加载全局配置(像准备野餐篮🧺)
- 用户登录时 → 记录登录时间(像写日记📖)
- 请求到来时 → 统计访问量(像数星星✨)
- 应用关闭时 → 关闭数据库连接(像关水龙头🚰)
⚠️ 注意事项泡泡
- 不要做太复杂的事情(会卡住哦!)
- 注意线程安全(像排队买奶茶🥤)
- 监听器之间不要互相依赖(会打架的!)
🎁 曼波小作业
试着写一个"请求计时器"监听器吧!思路:
- 请求开始时记录时间
- 请求结束时计算耗时
- 打印结果像这样:
"(๑•̀ㅂ•́)و✧ 本次请求耗时:58ms"
(✪▽✪)曼波~~~~!是不是像收集星星一样有趣呢?遇到问题随时召唤曼波哦~(比心)接下来想学Filter还是Servlet呢?(๑¯◡¯๑)
JavaWeb开发基础知识-Filter终极入门指南(曼波萌新版)
JavaWeb开发基础知识-Servlet终极入门指南(曼波萌新版)