Rumah >Java >javaTutorial >Cara menggunakan Penapis dan Pendengar dalam Java
Penapis dalam kehidupan: penulen air, penulen udara, penyamun, Penapis web: Apabila mengakses sumber pelayan , penapis boleh memintas permintaan dan melengkapkan beberapa fungsi khas. Fungsi penapis:
biasanya digunakan untuk menyelesaikan operasi biasa. Seperti: pengesahan log masuk, pemprosesan pengekodan bersatu, penapisan aksara sensitif...
Langkah
1. Tentukan kelas dan laksanakan Penapis antara muka
2. Kaedah salin
3. Konfigurasikan laluan pemintasan
web.xml
anotasi
Kod
@WebFilter("/*")//访问所有资源之前,都会执行该过滤器 public class FilterDemo1 implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("filterDemo1被执行了...."); //放行 filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { } }
konfigurasi web.xml
rreeeTapis proses pelaksanaan
Penapis pelaksanaan
Sumber selepas keluaran pelaksanaan
Kembali dan laksanakan kod di bawah kod keluaran penapis
Kaedah kitaran hayat penapis
init : Selepas pelayan bermula, objek Penapis akan dibuat dan kemudian kaedah init akan dipanggil. Hanya dilaksanakan sekali. Digunakan untuk memuatkan sumber
doFilter: akan dilaksanakan setiap kali permintaan dipintas untuk sumber. Dilaksanakan berbilang kali
musnahkan: Selepas pelayan ditutup, objek Penapis dimusnahkan. Jika pelayan ditutup seperti biasa, kaedah musnah akan dilaksanakan. Hanya dilaksanakan sekali. Digunakan untuk melepaskan sumber
Penapis butiran konfigurasi
Konfigurasi laluan pemintas:
Laluan sumber khusus : /index.jsp Penapis akan dilaksanakan hanya apabila mengakses sumber index.jsp
Direktori pintasan: /user/* Apabila mengakses semua sumber di bawah /user, penapis akan dilaksanakan
pemintasan nama akhiran: *.jsp Apabila mengakses semua sumber jsp akhiran, penapis akan dilaksanakan
memintas semua Sumber: /* Apabila mengakses semua sumber, penapis akan dilaksanakan
Konfigurasi kaedah pintasan: cara sumber diakses
Konfigurasi anotasi:
Tetapkan atribut dispatcherTypes
PERMINTAAN: Nilai lalai. Penyemak imbas secara langsung meminta sumber
MAJU: Majukan akses kepada sumber
SERTAKAN: Sertakan akses kepada sumber
RALAT: Ralat melompat sumber
ASYNC: Akses tak segerak kepada sumber
Hanya tetapkan label dalam konfigurasi web.xml
Tapis rantai (konfigurasikan berbilang penapis)
Tertib pelaksanaan: Jika terdapat dua penapis: penapis 1 dan penapis 2
Penapis 1
Penapis 2
Pelaksanaan Sumber
Penapis 2
Penapis 1
Isu pesanan penapis:
Konfigurasi anotasi: mengikut nama kelas Perbandingan peraturan rentetan, nilai yang lebih kecil dilaksanakan dahulu
Antara AFilter dan BFilter, AFilter dilaksanakan terlebih dahulu. 2. konfigurasi web.xml: Sesiapa yang mentakrifkannya di atas akan melaksanakannya dahulu
konsep : salah satu daripada tiga komponen utama web. Mekanisme mendengar acara
Acara: acara
Sumber acara: tempat kejadian berlaku
Pendengar: objek
Pendengar berdaftar: mengikat acara, sumber acara dan pendengar bersama-sama. Apabila peristiwa berlaku pada sumber acara, laksanakan kod pendengar
ServletContextListener: Dengar kaedah penciptaan dan pemusnahan objek ServletContext: void contextDestroyed(ServletContextEvent sce)
: Kaedah ini akan dipanggil sebelum Objek ServletContext dimusnahkan. void contextInitialized(ServletContextEvent sce)
: Kaedah ini akan dipanggil selepas objek ServletContext dibuat. 🎜>
<filter> <filter-name>demo1</filter-name> <filter-class>cn.zjq.web.filter.FilterDemo1</filter-class> </filter> <filter-mapping> <filter-name>demo1</filter-name> <!-- 拦截路径 --> <url-pattern>/*</url-pattern> </filter-mapping>Nyatakan permulaan parameter
@WebListener
Atas ialah kandungan terperinci Cara menggunakan Penapis dan Pendengar dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!