Preslikava filtra Web.xml v strežniku JSP s primerom

Kazalo:

Anonim

Kaj je filter JSP?

  • Filtri se uporabljajo za filtriranje funkcionalnosti spletne aplikacije Java.
  • Zahteve odjemalca prestrežejo, preden poskušajo dostopati do vira
  • Manipulirajo z odgovori strežnika in jih pošljejo odjemalcu.

Vrste filtrov v JSP

  • Filtri za preverjanje pristnosti
  • Filtri za stiskanje podatkov
  • Šifrirni filtri
  • Verižni filtri MIME
  • Filtri za beleženje
  • Tokenizirajoči filtri

Filtri so definirani v web.xml in so zemljevid za strežniški programček ali JSP. Ko se vsebnik JSP zažene s spletno aplikacijo, ustvari primerek vsakega filtra, ki je bil prijavljen v deskriptorju razmestitve.

Sledijo metode filtriranja:

  • Javna void doFilter (ServletRequest, ServletResponse, FilterChain)

    To se imenuje vsakič, ko se zahteva / odgovor pošlje od vsakega odjemalca, ko se zahteva od vira.

  • Javna void init (FilterConfig)

    To pomeni, da je filter dan v uporabo

  • Javna praznina uniči ()

    To pomeni, da je bil filter odstranjen iz uporabe.

Primer:

V tem primeru smo ustvarili filter in preslikali v web.xml

Gurufilter.java

demotest paketa;import java.io.IOException;uvoz java.util.Date;uvoz javax.servlet.Filter;uvoz javax.servlet.FilterChain;uvoz javax.servlet.FilterConfig;uvoz javax.servlet.ServletException;uvoz javax.servlet.ServletRequest;uvoz javax.servlet.ServletResponse;uvoz Javax.servlet.http.HttpServletRequest;javni razred GuruFilter izvaja Filter {public void doFilter (zahteva za ServletRequest, odgovor ServletResponse, veriga filtrov) vrže IOException, ServletException {// TODO Samodejno ustvarjena škrbina metodeHttpServletRequest req = (HttpServletRequest) zahteva;Niz ipAddress = req.getRemoteAddr ();System.out.println ("IP naslov" + ipAddress + ", čas je"+ nov datum (). toString ());// podajamo zahtevo po verigi filtrovchain.doFilter (zahteva, odgovor);}/ *** @see Filter # init (FilterConfig)* /javna void init (FilterConfig fConfig) vrže ServletException {Niz guruparam = fConfig.getInitParameter ("guru-param");// Natisni parameter initSystem.out.println ("Test Param: + guruparam);}}

Web.xml

test GuruFilter  GuruFilter  demotest.GuruFilter 
 guru-param 
 To je guru paramter  GuruFilter  / GuruFilter 

Pojasnilo kode:

Gurufilter.java

Vrstica kode 17-32 : Tu uporabljamo metodo "doFilter", kjer dobimo objekt zahteve (v našem primeru je objekt zahteve req (objekt HttpServletRequest)) in dobimo oddaljeni naslov odjemalca ter tiskanje na konzoli in tudi tiskanje datum in čas na konzoli.

Vrstica kode 33-37 : Tu uporabljamo metodo init, kjer vzamemo parameter init in v konzoli natisnemo parameter init.

Web.xml

Vrstica kode 10-11 - Preslikava GuruFilter z imenom razreda GuruFilter.java, kjer imamo ime filtra kot GuruFilter in razred filtra, ki je pot imenika razreda GuruFilter

Vrstica kode 13-15 - Preslikava parametra init z imenom guru-param in pridobivanje njegove vrednosti, ki je postavljena pod oznako filtra, tako da je ta init-param definiran za gurufilter

Izhod:

Ko zaženete zgornjo kodo, dobite naslednji izhod:

  • Rezultat je Test Param iz parametra init
  • In pridobivanje naslova IP, datuma in ure.