Filtrovat mapuping ve Web.xml

⚡ Chytré shrnutí

Filtrovat mapuping v souboru Web.xml definuje, jak filtry JSP zachycují požadavky klientů a odpovědi serveru v Java webová aplikace. Registruje každý filtr v deskriptoru nasazení, což umožňuje ověřování, protokolování, kompresi a šifrování před přístupem k prostředkům.

  • 🧩 Definice filtru: Komponenta web.xml, která filtruje požadavky a odpovědi v Java webová aplikace.
  • 🔐 Typy filtrů: Ověřování, komprese dat, šifrování, MIME řetězec, protokolování a tokenizační filtry.
  • ⚙️ Metody životního cyklu: Funkce init() spustí filtr, funkce doFilter() se spouští na požadavek a funkce destroy() jej odstraní z provozu.
  • 🗺️ Mapaping: Filtr a mapa filtrůping tagy propojují třídu filtru s URL vzor ve web.xml.
  • 🧪 Příklad: GuruFiltr zaznamenává IP adresu klienta, datum a čas a poté předá požadavek řetězci filtrů.

Filtrovat mapuping ve Web.xml

Co jsou JSP filtry?

  • Filtry ve web.xml se používají k filtrování Java webová aplikace.
  • Zachytí požadavky od klienta ještě předtím, než se pokusí o přístup k danému zdroji.
  • Manipulují s odpověďmi ze serveru a odeslanými klientovi.

Filtry jsou definovány v web.xml a jsou mapou na servlet resp JSP. Když se kontejner JSP spustí s webovou aplikací, vytvoří instanci každého filtru v souboru web.xml, který byl deklarován v deskriptoru nasazení.

Typy filtrů v JSP

JSP podporuje několik typů filtrů, z nichž každý řeší specifický problém v cyklu požadavek-odpověď:

  • Autentizační filtry
  • Filtry pro kompresi dat
  • Šifrovací filtry
  • MIME řetězové filtry
  • Filtry protokolování
  • Tokenizační filtry

Metody filtrování JSP

Jakmile znáte typy filtrů, je užitečné pochopit metody, které řídí jejich životní cyklus. Následují metody filtrování:

Public void doFilter(ServletRequest, ServletResponse, FilterChain)

To je voláno pokaždé, když je požadavek/odpověď předán od každého klienta, když je požadován ze zdroje.

Public void init (FilterConfig)

To znamená, že filtr v JSP je uveden do provozu.

Veřejné void zničit()

To znamená, že filtr byl vyřazen z provozu.

Příklad

V tomto příkladu jsme vytvořili filtr a namapovali jej Java Filtr 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>

Vysvětlení kódu

Gurufilter.java

Code Řádek 17–32: Zde používáme metodu „doFilter“, kde získáváme objekt požadavku (v našem příkladu je objektem požadavku req (objekt HttpServletRequest)), získáváme vzdálenou adresu klienta a vypisujeme ji na konzoli a také datum a čas.

Code Řádek 33–37: Zde používáme metodu init, kde bereme parametr init a vypíšeme jej do konzole.

Web.xml

Code Řádek 10–11: Filtrovat mapuping ve web.xml pro GuruFiltrovat podle názvu třídy GuruFilter.java, kde máme název filtru jako GuruFiltr a třída filtru, která je cestou k adresáři GuruTřída filtru.

Code Řádek 13–15: Mapaping inicializační parametr s názvem guru-param a získání jeho hodnoty, která je umístěna pod značkou filter, takže tento inicializační parametr byl definován pro gurufilter.

Výstup:

Když spustíte výše uvedený kód, získáte následující výstup:

Metody filtrování JSP

  • Výstupem je Test Param z parametru init
  • A načtení IP adresy, data a času.

Nejčastější dotazy

Servlet zpracovává a generuje odpověď na požadavek, zatímco filtr zachycuje požadavky a odpovědi za účelem provedení předběžného nebo následného zpracování, jako je ověřování nebo protokolování, aniž by sám generoval konečnou odpověď.

Filtry se spouštějí v pořadí, v jakém jsou jejich mapy filtrůping Záznamy se zobrazují v souboru web.xml. Kontejner je řetězí, takže první namapovaný filtr se spustí jako první na požadavku a jako poslední na odpovědi.

JSP filtr má tři metody životního cyklu: init() pro inicializaci filtru, doFilter() pro zpracování každého požadavku a odpovědi a destroy() pro uvolnění zdrojů, když je filtr odebrán z provozu.

Umělá inteligence dokáže analyzovat zásobník traces, detekce nesprávné mapy filtrůping objednávat, navrhovat chybějící inicializační parametry a odhalovat úzká místa ve výkonu v logice doFilter, helping vývojáři řeší problémy s filtry rychleji během testování a kontroly kódu.

Ano. Umělá inteligence dokáže generovat filtr a mapu filtrů ve formátu web.xml.ping položky z popisu požadovaného chování, včetně URL vzory a inicializační parametry, které pak vývojáři kontrolují a upravují pro svou aplikaci.

Shrňte tento příspěvek takto: