Peta Filterping di Web.xml

โšก Ringkasan Cerdas

Peta Filterping Dalam file Web.xml, dijelaskan bagaimana filter JSP mencegat permintaan klien dan respons server. Java Aplikasi web. Aplikasi ini mendaftarkan setiap filter dalam deskriptor penyebaran, mengaktifkan otentikasi, pencatatan, kompresi, dan enkripsi sebelum sumber daya diakses.

  • ๐Ÿงฉ Filter yang Didefinisikan: Komponen web.xml yang menyaring permintaan dan respons dalam sebuah Java aplikasi web.
  • ๐Ÿ” Jenis Penyaring: Filter otentikasi, kompresi data, enkripsi, rantai MIME, pencatatan log, dan tokenisasi.
  • โš™๏ธ Metode Siklus Hidup: init() memulai filter, doFilter() berjalan per permintaan, dan destroy() menghapusnya dari layanan.
  • ๐Ÿ—บ๏ธ Lokasiping: Filter dan peta filterping tag menghubungkan kelas filter ke URL pola di web.xml.
  • ๐Ÿงช Contoh: GuruFilter mencatat IP klien, tanggal, dan waktu, kemudian meneruskan permintaan tersebut melalui rantai filter.

Peta Filterping di Web.xml

Apa itu Filter JSP?

  • Filter di web.xml digunakan untuk memfilter fungsionalitas Java aplikasi web.
  • Mereka mencegat permintaan dari klien sebelum klien mencoba mengakses sumber daya tersebut.
  • Mereka memanipulasi tanggapan dari server dan dikirim ke klien.

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.

Jenis Filter di JSP

JSP mendukung beberapa jenis filter, yang masing-masing menangani masalah spesifik dalam siklus permintaan-respons:

  • Filter otentikasi
  • Filter kompresi data
  • Filter enkripsi
  • Filter rantai MIME
  • Filter Pencatatan
  • Filter tokenisasi

Metode Filter JSP

Setelah Anda mengetahui jenis-jenis filter, akan lebih mudah untuk memahami metode-metode yang mengontrol siklus hidup filter. Berikut adalah metode-metode filter tersebut:

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)

Ini untuk menunjukkan bahwa filter di JSP telah diaktifkan.

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

Code Baris 17-32: Di sini kita menggunakan metode โ€œdoFilterโ€ di mana kita mendapatkan objek permintaan (dalam contoh kita, objek permintaannya adalah req (objek HttpServletRequest)) dan mendapatkan alamat jarak jauh klien serta mencetaknya di konsol, termasuk tanggal dan waktu.

Code Baris 33-37: Di sini kita menggunakan metode init di mana kita mengambil parameter init dan mencetak parameter init di konsol.

Web.xml

Code Baris 10-11: Peta filterping di web.xml untuk GuruFilter berdasarkan nama kelas GuruFilter.java di mana kita memiliki filter-name sebagai GuruFilter dan kelas filter yang merupakan jalur direktori dari GuruKelas filter.

Code Baris 13-15: Lokasiping Parameter inisialisasi bernama guru-param dan mendapatkan nilainya yang ditempatkan di bawah tag filter, jadi init-param ini telah didefinisikan untuk gurufilter.

Keluaran:

Ketika Anda menjalankan kode di atas, Anda akan mendapatkan output berikut:

Metode Filter JSP

  • Outputnya adalah Test Param dari parameter init
  • Dan mengambil alamat IP, tanggal dan waktunya.

Pertanyaan Umum Demo Slot

Servlet menangani dan menghasilkan respons untuk suatu permintaan, sementara filter mencegat permintaan dan respons untuk melakukan pra-pemrosesan atau pasca-pemrosesan seperti otentikasi atau pencatatan, tanpa menghasilkan respons akhir itu sendiri.

Filter dieksekusi sesuai urutan filter-map-nya.ping Entri-entri tersebut muncul di web.xml. Kontainer menghubungkannya, sehingga filter pertama yang dipetakan berjalan pertama kali pada permintaan dan terakhir pada respons.

Filter JSP memiliki tiga metode siklus hidup: init() untuk menginisialisasi filter, doFilter() untuk memproses setiap permintaan dan respons, dan destroy() untuk melepaskan sumber daya ketika filter dihapus dari layanan.

AI dapat menganalisis tumpukan traces, mendeteksi peta filter yang salahping mengatur, menyarankan parameter inisialisasi yang hilang, dan menemukan hambatan kinerja dalam logika doFilter, helping Para pengembang menyelesaikan masalah filter lebih cepat selama pengujian dan peninjauan kode.

Ya. AI dapat menghasilkan filter web.xml dan filter-map.ping entri dari deskripsi perilaku yang diinginkan, termasuk URL pola dan parameter inisialisasi, yang kemudian ditinjau dan disesuaikan oleh pengembang untuk aplikasi mereka.

Ringkaslah postingan ini dengan: