日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

【Servlet】Java Serlvet Listener 监听器

發布時間:2025/4/16 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Servlet】Java Serlvet Listener 监听器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Listener監聽器

Servlet規范中定義的一種特殊的組件,用來監聽Servlet容器產生的事件并進行相應的處理 容器產生的事件分類- 生命周期相關的事件- 設置和刪除Attribute數據相關的事件
ServletContextListener監聽器
在ServletContext創建時和關閉時都會通知ServletContextListener 方法:servletContextInitialized(ServletContextEvent sce)當ServletContext創建的時候,將會調用這個方法servletContextDestroyed(ServletContextEvent sce)當ServletContext銷毀的時候(例如關閉應用服務器或者重新加載應用),將會調用這個方法。
ServletContextAttributeListener監聽器
當往Servlet Context添加、刪除或者替換一個屬性的時候,將會通知ServletContextAttributesListener 方法:void attributeAdded(ServletContextAttributeEvent scab)往ServletContext中加入一個屬性的時候觸發;void attributeRemoved(ServletContextAttributeEvent scab)從ServletContext中刪除一個屬性的時候觸發;void attributeReplaced(ServletContextAttributeEvent scab)改變ServletContext中屬性的時候觸發。
HttpSessionListener監聽器
當一個HttpSession剛被創建或者失效(invalidate)的時候,將會通知HttpSessionListener 方法:void sessionCreated(HttpSessionEvent hse)當一個HttpSession對象被創建時,將會調用這個方法;void sessionDestroyed(HttpSessionEvent hse)當一個HttpSession超時或者調用HttpSession的invalidate()方法讓它銷毀時,將會調用這個方法
HttpSessionAttributesListener監聽器
HttpSession中添加、刪除或者替換一個屬性的時候,將會通知HttpSessionAttributesListener 方法:void attributeAdded(HttpSessionBindingEvent e)當往會話中加入一個屬性的時候,將會調用這個方法;void attributeRemoved(HttpSessionBindingEvent e)當從會話中刪除一個屬性的時候,將會調用這個方法;void attributeReplaced(HttpSessionBindingEvent e)當改變會話中的屬性的時候,將會調用這個方法

上面只是列舉了一些常用的Listener,關于Listener中的方法,有一個規律,就是如果是Attribute的Listener那么就有三個抽象方法,如果是非Attribute的Listener就只有兩個抽象方法。其實官方提供了8大Listener,其中有2個ServletContextEvents,4個HttpSessionEvents,2個ServeltRequestEvents

ServletContextEvents:
  ServletContextListener Servlet上下文更改監聽
  ServletContextAttributeListener  Servlet上下文屬性更改監聽

HttpSessionEvents:
  HttpSessionListener  會話更改監聽
  HttpSessionAttributeListener  會話屬性更改監聽
  HttpSessionActivationListener  會話鈍化或激活監聽
  HttpSessionBindingListener  會話綁定或取消監聽

ServetRequestEvents:
  ServletRequestAttributeListener  請求屬性更改監聽
  ServletRequestListener 請求更改監聽
在web.xml中配置listener組件
<listener><listener-class>cn.xdl.listener.ListenerName</listener-class></listener>



看一個計算當前網站的在線人數案例:

jsp文件: <%@page import="cn.xdl.listener.MySessionListener"%> <%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> </body> </html> demo.jsp

加載一個JSP文件,會自動有application對象,所以會自動ServletContext文件

web.xml文件: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"><display-name>day09_listener</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><listener><listener-class>cn.xdl.listener.MySessionListener</listener-class></listener> </web-app> web.xml 配置監聽器和配置過濾器不一樣。
listener文件: package cn.xdl.listener;import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener;/*** 獲取當前網站 ,同時在線人數 **/ public class MySessionListener implements HttpSessionListener {public static int count = 0;/*** 當session創建時, 自動執行*/@Overridepublic void sessionCreated(HttpSessionEvent event) {System.out.println("網站進了一個新用戶");count+=1;}/*** 當session銷毀時 , 自動執行*/@Overridepublic void sessionDestroyed(HttpSessionEvent event) {System.out.println("網站離開了一個用戶");count-=1;}} MySessionListener.java

?

轉載于:https://www.cnblogs.com/HDK2016/p/7091111.html

總結

以上是生活随笔為你收集整理的【Servlet】Java Serlvet Listener 监听器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。