Web.xml-suodatinkartoitus JSP-palvelinsovelluksessa esimerkillä

Sisällysluettelo:

Anonim

Mikä on JSP-suodatin?

  • Suodattimia käytetään Java-verkkosovelluksen toiminnallisuuden suodattamiseen.
  • He sieppaavat asiakkaan pyynnöt ennen kuin he yrittävät käyttää resurssia
  • He manipuloivat palvelimelta saatuja vastauksia ja lähetetään asiakkaalle.

Suodattimien tyypit JSP: ssä

  • Todennussuodattimet
  • Tiedon pakkaussuodattimet
  • Salaussuodattimet
  • MIME-ketjusuodattimet
  • Suodattimien kirjaaminen
  • Tokensointisuodattimet

Suodattimet määritetään web.xml-tiedostossa, ja ne ovat kartta servletiin tai JSP: hen. Kun JSP-säilö alkaa verkkosovelluksella, se luo jokaisen suodattimen ilmentymän, joka on ilmoitettu käyttöönoton kuvauksessa.

Suodatinmenetelmät ovat seuraavat:

  • Public void doFilter (ServletRequest, ServletResponse, FilterChain)

    Tätä kutsutaan aina, kun pyyntö / vastaus välitetään jokaiselta asiakkaalta, kun sitä pyydetään resurssilta.

  • Julkinen tyhjä init (FilterConfig)

    Tämä tarkoittaa, että suodatin on otettu käyttöön

  • Julkinen tyhjä tuhoaminen ()

    Tämä osoittaa, että suodatin on otettu pois käytöstä.

Esimerkki:

Tässä esimerkissä olemme luoneet suodattimen ja kartoittaneet web.xml

Gurufilter.java

paketin demotest;tuo java.io.IOException;tuo java.util.Date;tuo javax.servlet.Filter;tuo javax.servlet.FilterChain;tuo javax.servlet.FilterConfig;tuo javax.servlet.ServletException;tuo javax.servlet.ServletRequest;tuo javax.servlet.ServletResponse;tuo Javax.servlet.http.HttpServletRequest;julkisen luokan GuruFilter toteuttaa suodattimen {public void doFilter (ServletRequest-pyyntö, ServletResponse-vastaus, Filterchain-ketju) heittää IOException, ServletException {// TODO Automaattisesti luotu menetelmän tynkäHttpServletRequest req = (HttpServletRequest) pyyntö;Merkkijono ipAddress = req.getRemoteAddr ();System.out.println ("IP-osoite" + ipAddress + ", aika on"+ uusi päivämäärä (). toString ());// välitä pyyntö suodatinketjua pitkinchain.doFilter (pyyntö, vastaus);}/ *** @see suodatin # init (FilterConfig)* /public void init (FilterConfig fConfig) heittää ServletException {Merkkijono guruparam = fConfig.getInitParameter ("guru-param");// Tulosta init-parametriSystem.out.println ("Testiparametri: + guruparam);}}

Web.xml

testi GuruFilter  GuruFilter  demotest.GuruFilter 
 guru-param 
 Tämä on guru-parametri  GuruFilter  / GuruFilter 

Koodin selitys:

Gurufilter.java

Koodirivi 17-32 : Tässä käytetään "doFilter" -menetelmää, jossa haetaan pyyntöobjekti (esimerkissämme pyyntöobjekti on req (HttpServletRequest -objekti)) ja haetaan asiakkaan etäosoite ja tulostetaan konsolille ja tulostetaan myös päivämäärä ja kellonaika konsolissa.

Koodirivi 33-37 : Tässä käytämme init-menetelmää, jossa otamme init-parametrin ja tulostamme init-parametrin konsoliin.

Web.xml

Koodirivi 10-11 - GuruFilterin kartoittaminen luokan nimellä GuruFilter.java, jossa meillä on suodatin-nimi GuruFilter ja suodatinluokka, joka on GuruFilter-luokan hakemistopolku

Koodirivi 13-15 - Kartoitetaan init-parametri nimeltä guru-param ja saadaan sen arvo, joka on sijoitettu suodatintagiin, joten tämä init-param on määritelty guru-suodattimelle

Tuotos:

Kun suoritat yllä olevan koodin, saat seuraavan tuloksen:

  • Lähtö on testiparametri init-parametrista
  • Ja haetaan IP-osoite, päivämäärä ja kellonaika siitä.