Pemetaan Filter di Web.xml
Apa itu Filter JSP?
- Filter di web.xml digunakan untuk memfilter fungsionalitas Java aplikasi web.
- Mereka mencegat permintaan dari klien sebelum mereka mencoba mengakses sumber daya
- Mereka memanipulasi tanggapan dari server dan dikirim ke klien.
Jenis Filter di JSP
- Filter otentikasi
- Filter kompresi data
- Filter enkripsi
- Filter rantai MIME
- Filter Pencatatan
- Filter tokenisasi
Filter didefinisikan di web.xml, dan merupakan peta ke servlet atau JSP. Ketika kontainer JSP dimulai dengan aplikasi web, ia menciptakan instance dari setiap filter di web.xml yang telah dideklarasikan dalam deskriptor penerapan.
Metode Filter JSP
Berikut ini adalah metode penyaringan:
Publik void doFilter(ServletRequest, ServletResponse, FilterChain)
Ini dipanggil setiap kali permintaan/respons diteruskan dari setiap klien ketika diminta dari sumber daya.
Init kekosongan publik (FilterConfig)
Hal ini untuk menunjukkan bahwa filter di JSP ditempatkan ke dalam layanan
Penghancuran kekosongan publik()
Ini menunjukkan bahwa filter telah dikeluarkan dari layanan.
Example
Dalam contoh ini, kami telah membuat filter dan memetakannya Java filter web.xml
Gurufilter.java
package demotest; 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; public class GuruFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, Filterchain chain) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest req = (HttpServletRequest) request; String ipAddress = req.getRemoteAddr(); System.out.println("IP Address "+ipAddress + ", Time is" + new Date().toString()); // pass the request along the filter chain chain.doFilter(request, response); } /** * @see Filter#init(FilterConfig) */ public void init(FilterConfig fConfig) throws ServletException { String guruparam = fConfig.getInitParameter("guru-param"); //Print the init parameter System.out.println("Test Param: " + guruparam); } }
Web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name> test</display-name> <filter> <description> </description> <display-name> GuruFilter</display-name> <filter-name>GuruFilter</filter-name> <filter-class>demotest.GuruFilter</filter-class> <init-param> <param-name>guru-param</param-name> <param-value>This is guru paramter</param-value> </init-param> </filter> <filter-mapping> <filter-name>GuruFilter</filter-name> <url-pattern>/GuruFilter</url-pattern> </filter-mapping>
Penjelasan kode
Gurufilter.java
Baris Kode 17-32: Di sini kita menggunakan metode “doFilter” di mana kita mendapatkan objek permintaan (dalam contoh kita objek permintaan adalah req(objek HttpServletRequest)) dan mendapatkan alamat jarak jauh klien dan mencetak pada konsol dan juga mencetak tanggal dan waktu pada konsol.
Baris Kode 33-37: Di sini kita menggunakan metode init dimana kita mengambil parameter init dan mencetak parameter init di konsol.
Web.xml
Baris Kode 10-11: Pemetaan filter di web.xml untuk GuruFilter dengan nama kelas GuruFilter.java di mana kita memiliki nama filter sebagai GuruFilter dan kelas filter yang merupakan jalur direktori kelas GuruFilter
Baris Kode 13-15: Memetakan parameter init bernama guru-param dan mendapatkan nilainya yang ditempatkan di bawah tag filter sehingga init-param ini telah ditentukan untuk gurufilter
Keluaran:
Ketika Anda menjalankan kode di atas, Anda akan mendapatkan output berikut:
- Outputnya adalah Test Param dari parameter init
- Dan mengambil alamat IP, tanggal dan waktunya.