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
xml version = "1.0" encoding = "UTF-8"?>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ä.