Servlet中的监听器
文章目录
- 什么是监听器
- 如何写监听器
- 配置监听器
- 统计在线人数的案例
什么是监听器
Servlet 规范当中定义的一种特殊的类,作用是监听容器当中产生的一些事件并进行相应的处理。
容器产生的事件指的是两大类事件:
第一大类
生命周期相关的事件,指的是当容器创建或者销毁 request,session,ServletContext 对象时产生的事件。
第二大类
绑订事件,指的是当调用 request,session,ServletContext 对象的setAttribute,removeAttribute 时产生的事件。
如何写监听器
step1
写一个 Java 类,实现特定的监听器接口(依据要监听的事件类型,去实现相应的监听器接口)。
step2
在接口声明的方法中,实现监听的逻辑。
step3
配置(web.xml)。
配置监听器
有先后顺序的要求,在 <context-param>
之后, <filter>
之前;<filter>
在 <listener>
之后,<servlet>
之前。
统计在线人数的案例
监听器示例代码:
package priv.lwx.servlet.web;import javax.servlet.ServletContext;
import javax.servlet.annotation.WebListener;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;/*** Session监听器** @author liaowenxiong* @date 2022/2/27 16:29*/
@WebListener
public class CountListener implements HttpSessionListener {private int count = 0;/*** Session对象创建后,就会执行该方法** @param arg0*/public void sessionCreated(HttpSessionEvent arg0) {System.out.println("sessionCreated...");count++;HttpSession session = arg0.getSession();ServletContext sctx = session.getServletContext();sctx.setAttribute("count", count);}/*** Session对象销毁前会执行该方法** @param arg0*/public void sessionDestroyed(HttpSessionEvent arg0) {System.out.println("Session对象被销毁...");count--;HttpSession session = arg0.getSession();ServletContext sctx = session.getServletContext();sctx.setAttribute("count", count);}
}
index.jsp 代码:
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head><title>当前系统在线人数</title>
</head>
<body>
系统在线人数:
<%= application.getAttribute("count") %>
<br/>
<a href="logout.jsp">退出</a>
</body>
</html>
logout.jsp 的示例代码:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Title</title>
</head>
<body>
<%session.invalidate();
%>
</body>
</html>
部署好之后,启动服务器,访问:http://localhost:8080/sl/index.jsp,sl 项目的虚拟目录。
Servlet中的监听器相关推荐
- Servlet中的监听器与过滤器的详细介绍
目录 1. 前言: 2. 怎么定义一个监听器? 3. ServletContextListener接口 4. ServletContextAttributeListener接口 5. 过滤器 1. 前 ...
- java web.xml 监听器_十:JavaWeb中的监听器(一)
2.1.基本概念 JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext, HttpSession和 ServletRequest等域 ...
- servlet中的session不一定会被创建
参考:http://c5ms.iteye.com/blog/1260593 servlet中的session不一定会被创建 以前在树上看session的生命周期,都知道session的生命周期是在客户 ...
- 【Servlet】Listener监听器
监听器的使用 * 监听器的使用:* 作用:* 监听作用域对象request.session.application的创建.销毁和内容的改变* 使用:* 创建一个实现了指定接口的java类* 监听req ...
- JAVA Web Servlet中的异步处理 (2) -- Servlet3.1中的Non-blocking IO支持
JAVA Web Servlet中的异步处理 (2) – Servlet3.1中的Non-blocking IO支持 在servlet 3.1中,新增了non-blocking IO支持. 在serv ...
- 【Spring】1、Spring 中的监听器 Listener
一.接口 1.EventListener 2.HttpSessionAttributeListener 继承EventListener接口 HttpSessionAttributeListener ...
- 【spring】在servlet中注入spring的bean,servlet容器和spring容器
一.Servlet容器 Servlet的整个生命周期好象都是由Servlet容器来处理的. 如果把它硬放到Spring容器中去创建,Servlet对象是可被Spring容器建出来,但Servlet容器 ...
- JavaEE框架类——监听器(观察者模式)和Servlet技术的监听器session沌化与活化技术
监听器 监听器-就是一个实现待定接口的普通Java程序,此程序专门用于监听别一个类的方法调用. 什么是观察者模式: 定义对象间一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知 ...
- IDEA servlet 过滤器和监听器
1.过滤器Filter 1.1 我的理解 过滤器本质就是一个Sevlet,不过它把每个Servlet类中都要做的一些事情,集中到了它这里,执行一次就可以了 使用基本和Servlet完全相同,在写完对应 ...
最新文章
- pythonmysql数据库系统实战_Python实战之MySQL数据库操作
- 简述原型链是什么,有什么用处?
- 读书笔记《单核工作法》_5:适用xing
- 【翻译自mos文章】OGG的集成捕捉模式支持Oracle database标准版么?
- boost::system::error_category相关的测试程序
- CTR点击率预估干货分享
- 【报告分享】2019抖音创作者生态报告.pdf
- 最近遇到个关于接口的奇怪的问题
- Centos7.x 安装Kubernetes(K8s) 1.14.3 nginx 部署 案例
- 纯Git实现前端项目打包部署
- 如何设置pycharm代码字体
- 《程序员修炼之道——从小工到专家》 读书笔记
- NetCore Vue前端实现导出功能及解决导出excel表格无法打开的问题
- html标签和css的语法web的一些知识汇总
- 博途PLC如何通过FB285实现V90 PN的速度控制
- Linux下安装SVN与使用
- 怎么建一个网站?新手建站教程
- 集成学习——BAGGING和随机森林
- 云服务器代理平台安装教程
- ndnSIM学习(十)——apps之ndn-producer.cpp和ndn-consumer.cpp源码分析
热门文章
- libgdx和unity_libgdx和Kotlin –类[2D平台原型]
- 请使用复选框选择_使用可选是可选的
- 如何构建一个Maven插件
- 使用Angular,Ionic 4和Spring Boot构建移动应用
- jboss5.1安全性配置_使用Java EE安全性和JBoss AS 7.x保护JSF应用程序的安全
- 如何在Spring中将@RequestParam绑定到对象
- Apache Derby数据库用户和权限
- lambda java_Java Lambdas简介
- 使用ADF绑定创建视图对象行CreateInsert操作
- Thymeleaf + Spring中的验证