怎么收录网站,得到做网站公司,c2c模式的网站有哪些,济宁城乡建设局网站文章目录什么是监听器如何写监听器配置监听器统计在线人数的案例什么是监听器
Servlet 规范当中定义的一种特殊的类#xff0c;作用是监听容器当中产生的一些事件并进行相应的处理。
容器产生的事件指的是两大类事件#xff1a; 第一大类 生命周期相关的事件#xff0c;指…
文章目录什么是监听器如何写监听器配置监听器统计在线人数的案例什么是监听器
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 contentTypetext/html; charsetUTF-8 pageEncodingUTF-8 %
!DOCTYPE html
html
headtitle当前系统在线人数/title
/head
body
系统在线人数
% application.getAttribute(count) %
br/
a hreflogout.jsp退出/a
/body
/htmllogout.jsp 的示例代码
% page contentTypetext/html;charsetUTF-8 languagejava %
html
headtitleTitle/title
/head
body
%session.invalidate();
%
/body
/html部署好之后启动服务器访问http://localhost:8080/sl/index.jspsl 项目的虚拟目录。