Apa itu JSP Filter?
- Penapis digunakan untuk menyaring fungsi aplikasi web Java.
- Mereka memintas permintaan daripada pelanggan sebelum mereka cuba mengakses sumber
- Mereka memanipulasi tindak balas dari pelayan dan dihantar ke pelanggan.
Jenis Penapis di JSP
- Penapis pengesahan
- Penapis pemampatan data
- Penapis penyulitan
- Penapis rantai MIME
- Penapis Log
- Penapis token
Penapis didefinisikan dalam web.xml, dan mereka adalah peta untuk servlet atau JSP. Apabila wadah JSP bermula dengan aplikasi web, ia membuat contoh setiap penapis yang telah dinyatakan dalam penerangan penerapan.
Berikut adalah kaedah penapis:
-
DoFilter kekosongan awam (ServletRequest, ServletResponse, FilterChain)
Ini disebut setiap kali permintaan / respons disampaikan dari setiap pelanggan ketika diminta dari sumber.
-
Init kekosongan awam (FilterConfig)
Ini untuk menunjukkan bahawa penapis diletakkan dalam perkhidmatan
-
Kekosongan awam memusnahkan ()
Ini menunjukkan bahawa penapis telah dikeluarkan dari perkhidmatan.
Contoh:
Dalam contoh ini, kami telah membuat penapis dan dipetakan di web.xml
Gurufilter.java
demotest pakej;import java.io.IOException;import java.util.Date;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import Javax.servlet.http.HttpServletRequest;GuruFilter kelas awam melaksanakan Penapis {doFilter void awam (permintaan ServletRequest, respons ServletResponse, rantai Filterchain) melemparkan IOException, ServletException {// TODO Kaedah penjanaan automatikPermintaan HttpServletRequest req = (HttpServletRequest);Rentetan ipAddress = req.getRemoteAddr ();System.out.println ("Alamat IP" + ipAddress + ", Masa adalah"+ Tarikh baru (). keString ());// lulus permintaan di sepanjang rantai penapischain.doFilter (permintaan, tindak balas);}/ *** @sihat Filter # init (FilterConfig)* /init kekosongan awam (FilterConfig fConfig) melemparkan ServletException {String guruparam = fConfig.getInitParameter ("guru-param");// Cetak parameter initSystem.out.println ("Param Uji: + guruparam);}}
Web.xml
xml version = "1.0" encoding = "UTF-8"?>ujian GuruFilter GuruFilter demotest.GuruFilter guru-param Ini adalah parameter guru GuruFilter / GuruFilter
Penjelasan kod:
Gurufilter.java
Baris Kod 17-32 : Di sini kita menggunakan kaedah "doFilter" di mana kita mendapatkan objek permintaan (dalam contoh kita objek permintaan adalah req (objek HttpServletRequest)) dan dapatkan alamat jauh klien dan mencetak di konsol dan juga mencetak tarikh dan masa di konsol.
Baris Kod 33-37 : Di sini kita menggunakan kaedah init di mana kita mengambil parameter init dan mencetak parameter init di konsol.
Web.xml
Baris Kod 10-11 - Memetakan GuruFilter dengan nama kelas GuruFilter.java di mana kita mempunyai nama penapis sebagai GuruFilter dan kelas penapis yang merupakan laluan direktori kelas GuruFilter
Baris Kod 13-15 - Memetakan parameter init bernama guru-param dan mendapatkan nilai yang diletakkan di bawah tag penapis sehingga init-param ini telah didefinisikan untuk gurufilter
Pengeluaran:
Apabila anda melaksanakan kod di atas, anda mendapat output berikut:
- Outputnya adalah Test Param dari parameter init
- Dan mengambil alamat IP, tarikh dan masa ia.