java中的監聽事件
1.ServletContextListener:對servlet上下文的建立和銷燬監聽
2.ServletContextAttributeListener:監聽servlet上下文屬性的新增、刪除和替換
3.HTTPSessionListener:對Session的建立和銷燬監聽
session的銷燬有兩種情況:1). session超時(可以在web.xml中通過<session-config>/<session-timeout>標籤配置超時 時間);2). 通過呼叫session物件的invalidate()方法使session失效。
4.HttpSessionAttributeListener:對Session物件中屬性的新增、刪除和替換進行監聽
5.ServletRequestListener:對請求物件的初始化和銷燬進行監聽。
6.ServletRequestAttributeListener:對請求物件屬性的新增、刪除和替換進行監聽
上邊6個類是java給我提供的監聽的類,在使用時之間實現其介面,以及介面中方法即可
public class OnlinePerListener implements HttpSessionListener{ private int userCounter = 0; @Override public void sessionCreated(HttpSessionEvent session) { userCounter++; session.getSession().setAttribute("userCounter", userCounter); } @Override public void sessionDestroyed(HttpSessionEvent session) { userCounter--; session.getSession().setAttribute("userCounter", userCounter); } }
PS:無論是自己寫的監聽事件,還是使用java提供的監聽,都需要在web.xml中對其進行配置
<listener>
<listener-class>com.JavaListener.TestListener</listener-class>
</listener>
下邊寫自己實現監聽器:
監聽器設計主要涉及三個元件
1.事件源:即事件發生的源頭,例如一條狗,他可以發出動作。
2.事件物件:是對事件源的例項化,進而可以設定其相應的屬性
3.事件監聽器:用來監聽事件源發出的動作。
/* * 建立事件源 */ public class Dog { //定義一個監聽器物件,用來接收傳遞進來的事件監聽器 private DogListener listener; public void registListener(DogListener dogListener){ this.listener=dogListener; } public void shout(){ if(listener!=null){ Even even = new Even(this); this.listener.doshout(even); } System.out.println("汪汪汪................"); } public void watch(){ if(listener!=null){ Even even = new Even(this); this.listener.dowatch(even); } System.out.println("狗會看門.............."); } }
public class TestListener implements DogListener{ public static void main(String[] args) { Dog dog = new Dog(); dog.registListener(new TestListener()); dog.shout(); dog.watch(); } @Override public void doshout(Even even) { //拿到事件源,可以進行操作 Dog dog = even.getDog(); System.out.println("叫之前的動作"); } @Override public void dowatch(Even even) { System.out.println("看門之前的動作"); } }
相關推薦
關於AngularJs中監聽事件及髒迴圈的理解
這篇文章講解的很好,大家可以參考,地址如下: http://www.mamicode.com/info-detail-1508620.html(點選開啟連結) http://www.cnblogs.com/wupeng88/p/6530421.html(點選開啟連結)
java中的key事件監聽機制
com java.awt imp package 時間 ext javax .get pri package com.at221; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; im
java中的監聽事件
java監聽器實現的類 1.ServletContextListener:對servlet上下文的建立和銷燬監聽 2.ServletContextAttributeListener:監聽servlet上下文屬性的新增、刪除和替換 3.HTTPSessionListener:
<Java>按鈕監聽事件的實現方式
方式 log undle 必須 AC listen oncreate ava creat 一:事件處理機制要通過以下三個不同對象來實現: (1)事件源:事件發生的場所,通常為產生事件的組件。 (2)事件對象:封裝在組件上發生的特定事件。 (3)事件監聽對象:負責監聽事件源發
js/jQery中的鍵盤監聽事件觸發回車鍵位登入觸發教程及demo
js/jQery中的鍵盤監聽事件觸發回車鍵位登入觸發教程及demo 在我們專案的過程中經常會遇到需要鍵盤 來控制的事件,比如:登入、搜尋等,廢話不多說上程式碼!! 我這裡主要是做了兩個的監聽,一個是回車的,一個是通用複製的, 可以在判斷中寫入方法體來控制 <script
layer 在標題中加點選監聽事件
本文來源於網路,自己拼湊。謝謝博主們的熱情分享。 在layer的標題裡面設定一個id="conform" 給這個id一個點選的監聽事件 $(document).on('click','#conform',function(){ test(); }); 另外還需要設定屬性在la
ButterKnife之三:Adapter中ButterKnife核心常用功能使用(替代findviewbyid,替代OnClickListener以及繫結多個id監聽事件)
在上一篇“ButterKnife之一:Activity中ButterKnife核心常用功能使用(替代findviewbyid,替代OnClickListener以及繫結多個id監聽事件)”中對ButterKnife已經做了相對較詳細的介紹,本篇只對Adapter中ButterKnife使用的程式
ButterKnife之二:Fragment 中ButterKnife核心常用功能使用(替代findviewbyid,替代OnClickListener以及繫結多個id監聽事件)
在上一篇“ButterKnife之一:Activity中ButterKnife核心常用功能使用(替代findviewbyid,替代OnClickListener以及繫結多個id監聽事件)”中對ButterKnife已經做了相對較詳細的介紹,本篇只對Fragment 中ButterKnife使用的
ButterKnife之一:Activity中ButterKnife核心常用功能使用(替代findviewbyid,替代OnClickListener以及繫結多個id監聽事件)
ButterKnife是一個註解類,ButterKnife開源框架以其強大的view繫結和click事件處理功能,大大減少程式碼量,節省開發時間,提高開發效率,而且ButterKnife在adapter中的使用也方便的處理了adapter中ViewHodler的繫結問題,下面就學習內容做簡單記錄
Fragment中RecyclerView的使用解析,以及監聽事件處理
RecyclerView是可以代替listview使用的新元件,個人感覺其主要特色:其介面卡adapter中,重寫的東西少了,頁面展示的效果跟加多了,比如可以在RecyclerView設定listview的顯示效果,也可以設定gridview的顯示效果,也可以設定瀑布流的顯示效果!下面程式碼主要
Android中監聽Edittext控制元件於鍵盤中按下確認事件OnEditorActionListener
背景 Edittext作為一個常見控制元件,很多時候都有監聽鍵盤確認就執行指定邏輯的需求 實現 這個很簡單嘛,Edittext自帶有鍵盤按下事件監聽,就是OnEditorActionListener了,用就對了 問題 使用中發現,的確可以監聽鍵盤確認事
專案總結之 jquery中,使用append增加新元素時,新增元素的繫結監聽事件失效的解決辦法
$(“outerSelector”).on(“eventType”,“innerSelector”,function(){}); 舉例:如果在一個 中,通過append新增一個id="demo"的按鈕,常用的直接$(“Selector”).on(“eventType”,function
vue之在頁面中監聽鍵盤的Enter鍵來觸發某個按鈕事件
專案中得需求:給頁面某個按鈕繫結Enter鍵,但是按鈕不在form中,直接給按鈕繫結後此按鈕只有獲取了焦點按鍵才會觸發,顯然,一直保持按鈕獲取焦點是不現實得。所以通過查詢等,結合專案需求,完成了下面得程式碼,希望對大家有用,歡迎一起探討,Email:[email p
H5 中監聽頁面滾動事件,判斷滾動方向的方法
在做 H5 開發的時候,有時候需要監聽頁面的滾動的事件,根據頁面滾動方向的不同來進行不同的操作,通常是判斷頁面是向上滾動還是向下滾動,那麼怎麼判斷呢,只需要使用下面的區區幾十行程式碼即可。 //監聽頁
C# WPF中監聽視窗大小變化事件
C#中WPF框架下為了監聽視窗的大小變化,需要實現視窗的SizeChanged事件,具體做法如下: 首先需要在視窗建構函式中為SizeChanged繫結處理事件: public MainWindow(
Android如何在Fragment中監聽OnKeyDown、OnkeyUp事件
在螢幕上,有個Activity,在Activity上面有個Fragment,此時,當我們在螢幕中彈出一個覆蓋全屏,或者覆蓋一部分,剩下部分帶陰影的(Dialog)時候。我們的最上層View裡面拿不到OnKeyDown或者是OnKeyUp方法,怎麼辦呢? 可以在Dialog的onResu
Android中自定義ScrollView的滑動監聽事件
專案結構: 1.LazyScrollView類(自定義ScrollView) package android.zhh.com.myapplicationscrollview; /** * Created by sky on 2017/3/19. */ impor
JAVA之鍵盤,滑鼠監聽事件
本案設計鍵盤按鈕,畫出一個簡易鍵盤, 通過按下,釋放鍵盤 滑鼠經過按鈕,滑鼠點選按鈕,滑鼠離開按鈕 詳細解釋了滑鼠鍵盤對應事件 先看一下鍵盤監聽介面的API void keyPressed(KeyEvent e) 按下鍵時呼叫。 void k
Vue檔案中監聽input輸入事件v-on:input
原文地址:http://blog.csdn.net/JaneLittle/article/details/72742225 oninput 事件在使用者輸入時觸發,菜鳥教程中的用法是: 但是在.vue中這樣寫是沒有作用的: <input type="t
Android中自定義ScrollView的滑動監聽事件,並在滑動時漸變標題欄背景顏色
效果圖 滑動前: 滑動中: 滑動到底部: 專案結構 ObservableScrollView package com.jukopro.titlebarcolor; import android.content.Context; import android.u