Jadual Kandungan
Pendengar
Panggil balik antara muka
Pendengar Web
Pantau penciptaan dan pemusnahan tiga skop
Dengar status atribut tiga skop perubahan
perubahan statusListen to the status nilai yang disimpan dalam HttpSession
Senario aplikasi Listener
Rumah Java javaTutorial Bagaimanakah Java Web Listener melaksanakan pemantauan dan pemprosesan acara?

Bagaimanakah Java Web Listener melaksanakan pemantauan dan pemprosesan acara?

May 19, 2023 pm 12:01 PM
java listener

Dalam pembangunan Web Java, Pendengar dan panggil balik antara muka adalah konsep yang sangat penting. Ia boleh digunakan untuk mendengar pelbagai acara untuk mengambil langkah yang sesuai apabila peristiwa itu berlaku.

Pendengar

Dalam aplikasi web Java, Pendengar ialah komponen yang boleh digunakan untuk mendengar peristiwa yang berlaku dalam aplikasi web. Pendengar boleh mendengar peristiwa berikut:

  • Penciptaan dan pemusnahan ServletContext

  • Penciptaan dan pemusnahan HttpSession

  • Penciptaan dan pemusnahan ServletRequest

Pendengar boleh mendengar acara yang sepadan dengan melaksanakan antara muka berikut:

  • ServletContextListener

  • HttpSessionListener

  • ServletRequestListener

Sebagai contoh, kod berikut menunjukkan cara mendengar penciptaan dan penciptaan ServletContext dengan melaksanakan antara muka ServletContextListener:

public class MyServletContextListener implements ServletContextListener {
    public void contextInitialized(ServletContextEvent event) {
        // ServletContext创建时执行的代码
    }
    public void contextDestroyed(ServletContextEvent event) {
        // ServletContext销毁时执行的代码
    }
}
Salin selepas log masuk

Panggil balik antara muka

Fungsi panggil balik ialah corak pengaturcaraan yang membolehkan menghantar fungsi sebagai parameter kepada fungsi lain dan kemudian memanggil fungsi di dalam fungsi tersebut. untuk melaksanakan panggilan balik. Di Java, panggilan balik boleh dilaksanakan menggunakan antara muka.

Sebagai contoh, kod berikut menunjukkan cara menggunakan panggilan balik antara muka untuk melaksanakan pendengaran acara:

public interface MyEventListener {
    void onEvent(Event event);
}
public class EventSource {
    private MyEventListener listener;
    public void setEventListener(MyEventListener listener) {
        this.listener = listener;
    }
    public void fireEvent(Event event) {
        if (listener != null) {
            listener.onEvent(event);
        }
    }
}
public class MyEventListenerImpl implements MyEventListener {
    public void onEvent(Event event) {
        // 处理事件的代码
    }
}
Salin selepas log masuk

Dalam kod di atas, kelas EventSource mewakili sumber acara, yang boleh menetapkan acara melalui pendengar kaedah setEventListener(). Antara muka MyEventListener mewakili pendengar acara, yang mempunyai kaedah onEvent(), yang dipanggil apabila peristiwa berlaku. Kelas MyEventListenerImpl melaksanakan antara muka MyEventListener, yang mengandungi pelaksanaan kaedah onEvent() untuk mengendalikan acara.

Pendengar Web

Sejenis pendengar khas yang digunakan untuk mendengar acara dalam aplikasi Web dipanggil pendengar Web. Pendengar web boleh mendengar acara berikut:

  • Penciptaan dan pemusnahan ServletContext

  • Penciptaan dan pemusnahan HttpSession

  • Penciptaan dan pemusnahan ServletRequest

  • Perubahan keadaan atribut dalam HttpSession

Sebagai contoh, kod berikut menunjukkan cara melaksanakan HttpteListensioner Antara muka untuk memantau perubahan dalam status atribut dalam HttpSession:

public class MyHttpSessionAttributeListener implements HttpSessionAttributeListener {
    public void attributeAdded(HttpSessionBindingEvent event) {
        // HttpSession中添加属性时执行的代码
    }
    public void attributeRemoved(HttpSessionBindingEvent event) {
        // HttpSession中删除属性时执行的代码
    }
    public void attributeReplaced(HttpSessionBindingEvent event) {
        // HttpSession中替换属性时执行的代码
    }
}
Salin selepas log masuk

Pantau penciptaan dan pemusnahan tiga skop

Dalam aplikasi Web Java, terdapat tiga skop: ServletContext, HttpSession dan ServletRequest. Anda boleh mendengar peristiwa penciptaan dan pemusnahan skop ini dengan menulis pendengar yang sesuai.

Sebagai contoh, kod berikut menunjukkan cara mendengar peristiwa penciptaan dan pemusnahan ketiga-tiga skop ini dengan melaksanakan antara muka ServletContextListener, HttpSessionListener dan ServletRequestListener:

public class MyServletContextListener implements ServletContextListener {
    public void contextInitialized(ServletContextEvent event) {
        // ServletContext创建时执行的代码
    }
    public void contextDestroyed(ServletContextEvent event) {
        // ServletContext销毁时执行的代码
    }
}
public class MyHttpSessionListener implements HttpSessionListener {
    public void sessionCreated(HttpSessionEvent event) {
        // HttpSession创建时执行的代码
    }
    public void sessionDestroyed(HttpSessionEvent event) {
        // HttpSession销毁时执行的代码
    }
}
public class MyServletRequestListener implements ServletRequestListener {
    public void requestInitialized(ServletRequestEvent event) {
        // ServletRequest创建时执行的代码
    }
    public void requestDestroyed(ServletRequestEvent event) {
        // ServletRequest销毁时执行的代码
    }
}
Salin selepas log masuk

Dengar status atribut tiga skop perubahan

Selain dapat memantau kejadian penciptaan dan pemusnahan tiga skop, anda juga boleh memantau perubahan dalam keadaan atributnya. Anda boleh mendengar acara ini dengan melaksanakan Pendengar yang sepadan.

Sebagai contoh, kod berikut menunjukkan cara memantau perubahan dalam status atribut dalam tiga skop ini dengan melaksanakan antara muka ServletContextAttributeListener, HttpSessionAttributeListener dan ServletRequestAttributeListener:

rreee

perubahan statusListen to the status nilai yang disimpan dalam HttpSession

Selain memantau peristiwa perubahan status atribut dalam HttpSession, anda juga boleh memantau peristiwa perubahan status nilai yang disimpan dalam HttpSession. Untuk mendengar acara ini, anda boleh melaksanakan antara muka HttpSessionBindingListener.

Sebagai contoh, kod berikut menunjukkan cara memantau peristiwa perubahan keadaan bagi nilai yang disimpan dalam HttpSession dengan melaksanakan antara muka HttpSessionBindingListener:

public class MyServletContextAttributeListener implements ServletContextAttributeListener {
    public void attributeAdded(ServletContextAttributeEvent event) {
        // ServletContext中添加属性时执行的代码
    }
    public void attributeRemoved(ServletContextAttributeEvent event) {
        // ServletContext中删除属性时执行的代码
    }
    public void attributeReplaced(ServletContextAttributeEvent event) {
        // ServletContext中替换属性时执行的代码
    }
}
public class MyHttpSessionAttributeListener implements HttpSessionAttributeListener {
    public void attributeAdded(HttpSessionBindingEvent event) {
        // HttpSession中添加属性时执行的代码
    }
    public void attributeRemoved(HttpSessionBindingEvent event) {
        // HttpSession中删除属性时执行的代码
    }
    public void attributeReplaced(HttpSessionBindingEvent event) {
        // HttpSession中替换属性时执行的代码
    }
}
public class MyServletRequestAttributeListener implements ServletRequestAttributeListener {
    public void attributeAdded(ServletRequestAttributeEvent event) {
        // ServletRequest中添加属性时执行的代码
    }
    public void attributeRemoved(ServletRequestAttributeEvent event) {
        // ServletRequest中删除属性时执行的代码
    }
    public void attributeReplaced(ServletRequestAttributeEvent event) {
        // ServletRequest中替换属性时执行的代码
    }
}
Salin selepas log masuk

Senario aplikasi Listener

Aplikasi Listener senario Sangat meluas. Sebagai contoh, Listener boleh digunakan untuk melaksanakan fungsi berikut:

  • Muatkan fail konfigurasi apabila ServletContext dimulakan

  • Rekodkan maklumat bagi pengguna log masuk apabila HttpSession dibuat

  • Rekod alamat IP yang diminta apabila ServletRequest dibuat

  • Lakukan pembersihan yang sepadan apabila mencipta dan memusnahkan skop

Apabila menggunakan Listener, anda perlu memberi perhatian kepada perkara berikut:

  • Kelas pelaksanaan Listener mesti melaksanakan antara muka yang sepadan.

  • Kelas pelaksanaan pendengar mesti dikonfigurasikan dalam fail web.xml.

  • Kelas pelaksanaan Listener mesti berada dalam ClassLoader yang sama dengan aplikasi.

Atas ialah kandungan terperinci Bagaimanakah Java Web Listener melaksanakan pemantauan dan pemprosesan acara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Nombor Sempurna di Jawa Nombor Sempurna di Jawa Aug 30, 2024 pm 04:28 PM

Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Weka di Jawa Weka di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Nombor Smith di Jawa Nombor Smith di Jawa Aug 30, 2024 pm 04:28 PM

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Soalan Temuduga Java Spring Soalan Temuduga Java Spring Aug 30, 2024 pm 04:29 PM

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

TimeStamp to Date in Java TimeStamp to Date in Java Aug 30, 2024 pm 04:28 PM

Panduan untuk TimeStamp to Date di Java. Di sini kita juga membincangkan pengenalan dan cara menukar cap waktu kepada tarikh dalam java bersama-sama dengan contoh.

Program Java untuk mencari kelantangan kapsul Program Java untuk mencari kelantangan kapsul Feb 07, 2025 am 11:37 AM

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4

Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Oct 13, 2024 pm 01:32 PM

Java ialah bahasa pengaturcaraan popular yang boleh dipelajari oleh pembangun pemula dan berpengalaman. Tutorial ini bermula dengan konsep asas dan diteruskan melalui topik lanjutan. Selepas memasang Kit Pembangunan Java, anda boleh berlatih pengaturcaraan dengan mencipta program "Hello, World!" Selepas anda memahami kod, gunakan gesaan arahan untuk menyusun dan menjalankan program, dan "Hello, World!" Pembelajaran Java memulakan perjalanan pengaturcaraan anda, dan apabila penguasaan anda semakin mendalam, anda boleh mencipta aplikasi yang lebih kompleks.

See all articles