Suodata karttaping Web.xml-tiedostossa

โšก ร„lykรคs yhteenveto

Suodata karttaping Web.xml-tiedostossa mรครคritellรครคn, miten JSP-suodattimet sieppaavat asiakaspyynnรถt ja palvelimen vastaukset Java verkkosovellus. Se rekisterรถi jokaisen suodattimen kรคyttรถรถnottokuvaajaan, mikรค mahdollistaa todennuksen, lokinnuksen, pakkauksen ja salauksen ennen resurssien kรคyttรถรค.

  • ๐Ÿงฉ Suodatin mรครคritelty: web.xml-komponentti, joka suodattaa pyyntรถjรค ja vastauksia Java verkkosovellus.
  • ๐Ÿ” Suodatintyypit: Todennus, tiedon pakkaus, salaus, MIME-ketju, lokikirjaus ja tokenisointisuodattimet.
  • โš™๏ธ Elinkaarimenetelmรคt: init() kรคynnistรครค suodattimen, doFilter() suoritetaan pyynnรถn mukaan ja destroy() poistaa sen palvelusta.
  • ๐Ÿ—บ๏ธ karttaping: Suodatin ja suodatinkarttaping tagit linkittรคvรคt suodatinluokan johonkin URL malli web.xml-tiedostossa.
  • ๐Ÿงช Esimerkiksi: GuruSuodatin kirjaa asiakkaan IP-osoitteen, pรคivรคmรครคrรคn ja kellonajan ja vรคlittรครค sitten pyynnรถn suodatinketjua pitkin.

Suodata karttaping Web.xml-tiedostossa

Mikรค on JSP-suodattimet?

  • Web.xml:n suodattimia kรคytetรครคn suodatustoimintoihin Java verkkosovellus.
  • Ne sieppaavat asiakkaan pyynnรถt ennen kuin he yrittรคvรคt kรคyttรครค resurssia.
  • Ne kรคsittelevรคt palvelimelta saapuvia ja asiakkaalle lรคhetettyjรค vastauksia.

Suodattimet mรครคritellรครคn web.xml:ssรค, ja ne ovat kartta servletiin tai JSP. Kun JSP-sรคilรถ kรคynnistyy verkkosovelluksessa, se luo web.xml-tiedostoon jokaisen suodattimen ilmentymรคn, joka on ilmoitettu kรคyttรถรถnoton kuvauksessa.

Suodattimien tyypit JSP:ssรค

JSP tukee useita suodatintyyppejรค, joista jokainen kรคsittelee tiettyรค ongelmaa pyyntรถ-vastaus-syklissรค:

  • Todennussuodattimet
  • Tietojen pakkaussuodattimet
  • Salaussuodattimet
  • MIME-ketjusuodattimet
  • Kirjaussuodattimet
  • Tokenointisuodattimet

JSP-suodatusmenetelmรคt

Kun tiedรคt suodatintyypit, on hyรถdyllistรค ymmรคrtรครค menetelmรคt, jotka ohjaavat suodattimen elinkaarta. Seuraavat suodatinmenetelmรคt ovat:

Public void doFilter (ServletRequest, ServletResponse, FilterChain)

Tรคtรค kutsutaan aina, kun pyyntรถ/vastaus vรคlitetรครคn jokaiselta asiakkaalta, kun sitรค pyydetรครคn resurssilta.

Julkinen void init (FilterConfig)

Tรคmรค osoittaa, ettรค JSP-suodatin on otettu kรคyttรถรถn.

Julkinen void tuhota()

Tรคmรค osoittaa, ettรค suodatin on poistettu kรคytรถstรค.

esimerkki

Tรคssรค esimerkissรค olemme luoneet suodattimen ja kartoittaneet sen Java web.xml-suodatin.

Gurusuodatin.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>

Koodin selitys

Gurusuodatin.java

Code Rivi 17โ€“32: Tรคssรค kรคytรคmme โ€œdoFilterโ€-metodia, jossa saamme pyyntรถobjektin (esimerkissรคmme pyyntรถobjekti on req (HttpServletRequest-objekti)) ja saamme asiakkaan etรคosoitteen ja tulostamme sen konsoliin sekรค pรคivรคmรครคrรคn ja kellonajan.

Code Rivi 33โ€“37: Tรคssรค kรคytรคmme init-metodia, jossa otamme init-parametrin ja tulostamme init-parametrin konsoliin.

Web.xml

Code Rivi 10โ€“11: Suodata karttaping web.xml-tiedostossa GuruSuodata luokan nimellรค GuruFilter.java, jossa suodattimen nimi on GuruSuodatin ja suodatinluokka, joka on hakemistopolku GuruSuodatinluokka.

Code Rivi 13โ€“15: karttaping init-parametri nimeltรค guru-param ja sen arvon hakeminen, joka sijoitetaan filter-tagin alle, joten tรคmรค init-param on mรครคritelty gurufilterille.

lรคhtรถ:

Kun suoritat yllรค olevan koodin, saat seuraavan tulosteen:

JSP-suodatusmenetelmรคt

  • Lรคhtรถ on Test Param init-parametrista
  • Ja IP-osoitteen, pรคivรคmรครคrรคn ja kellonajan hakeminen.

UKK

Servlet kรคsittelee pyynnรถn ja luo siihen vastauksen, kun taas suodatin sieppaa pyynnรถt ja vastaukset suorittaakseen esikรคsittelyรค tai jรคlkikรคsittelyรค, kuten todennusta tai lokikirjausta, tuottamatta itse lopullista vastausta.

Suodattimet suoritetaan suodatinkartoituksen mukaisessa jรคrjestyksessรคping Merkinnรคt nรคkyvรคt web.xml-tiedostossa. Sรคilรถ ketjuttaa ne, joten ensimmรคiseksi yhdistetty suodatin suoritetaan ensin pyynnรถssรค ja viimeisenรค vastauksessa.

JSP-suodattimella on kolme elinkaarimetodia: init() suodattimen alustamiseen, doFilter() kunkin pyynnรถn ja vastauksen kรคsittelyyn sekรค destroy() resurssien vapauttamiseen, kun suodatin poistetaan kรคytรถstรค.

Tekoรคly voi analysoida pinoa traces, havaitse virheellinen suodatinkarttaping jรคrjestyksessรค, ehdottaa puuttuvia init-parametreja ja paikantaa doFilter-logiikan suorituskyvyn pullonkauloja, helping kehittรคjรคt ratkaisevat suodatinongelmat nopeammin testauksen ja koodin tarkistuksen aikana.

Kyllรค. Tekoรคly voi luoda web.xml-suodattimen ja suodatinkartanping halutun kรคyttรคytymisen kuvauksen merkinnรคt, mukaan lukien URL mallit ja init-parametrit, joita kehittรคjรคt sitten tarkistavat ja sรครคtรคvรคt sovellukseensa sopivaksi.

Tiivistรค tรคmรค viesti seuraavasti: