Mapovanie filtra Web.xml v servlete JSP s príkladom

Čo je filter JSP?

  • Filtre sa používajú na filtrovanie funkcií webovej aplikácie Java.
  • Zachytávajú požiadavky klienta skôr, ako sa pokúsia získať prístup k prostriedku
  • Manipulujú s odpoveďami zo servera a posielajú sa klientovi.

Typy filtrov v JSP

  • Autentifikačné filtre
  • Filtre na kompresiu údajov
  • Šifrovacie filtre
  • Reťazové filtre MIME
  • Filtre na prihlásenie
  • Tokenizačné filtre

Filtre sú definované v web.xml a sú mapou na servlet alebo JSP. Keď kontajner JSP začína s webovou aplikáciou, vytvorí inštanciu každého filtra, ktorý bol deklarovaný v deskriptore nasadenia.

Nasledujú metódy filtrovania:

  • Public void doFilter (ServletRequest, ServletResponse, FilterChain)

    Toto sa volá vždy, keď sa od každého klienta odošle požiadavka / odpoveď, keď sa požaduje od zdroja.

  • Public void init (FilterConfig)

    To znamená, že filter je uvedený do prevádzky

  • Zničenie verejnej prázdniny ()

    To znamená, že filter bol vyradený z prevádzky.

Príklad:

V tomto príklade sme vytvorili filter a mapovali sme ho do súboru web.xml

Gurufilter.java

balíček 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;importovať Javax.servlet.http.HttpServletRequest;verejná trieda GuruFilter implementuje filter {public void doFilter (požiadavka ServletRequest, odpoveď ServletResponse, reťazec Filterchain) hodí IOException, ServletException {// TODO Automaticky generovaný pahýl metódyHttpServletRequest req = (HttpServletRequest) požiadavka;Reťazec ipAddress = req.getRemoteAddr ();System.out.println ("IP adresa" + ipAddress + ", čas je"+ nový dátum (). toString ());// odovzdať požiadavku pozdĺž reťazca filtrachain.doFilter (požiadavka, odpoveď);}/ *** @ pozri Filter # init (FilterConfig)* /public void init (FilterConfig fConfig) vyvolá ServletException {Reťazec guruparam = fConfig.getInitParameter ("guru-param");// Vypíše parameter initSystem.out.println ("Testovací parameter: + guruparam);}}

Web.xml

test 
GuruFilter  GuruFilter  demotest.GuruFilter 
 guru-param 
 Toto je parameter guru  GuruFilter  / GuruFilter 

Vysvetlenie kódu:

Gurufilter.java

Riadok kódu 17-32 : Tu používame metódu „doFilter“, kde dostávame objekt žiadosti (v našom príklade je objekt žiadosti req (objekt HttpServletRequest)) a získame vzdialenú adresu klienta a tlač na konzolu a tiež tlač dátum a čas na konzole.

Riadok kódu 33-37 : Tu používame metódu init, kde berieme parameter init a tlačíme parameter init v konzole.

Web.xml

Riadok kódu 10-11 - Mapovanie GuruFilteru s názvom triedy GuruFilter.java, kde máme názov filtra ako GuruFilter a triedu filtra, čo je cesta k adresáru triedy GuruFilter

Riadok kódu 13-15 - Mapovanie parametra init s názvom guru-param a získanie jeho hodnoty, ktorá je umiestnená pod značkou filtra, takže tento parameter init bol definovaný pre gurufilter

Výkon:

Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup:

  • Výstupom je Test Param z parametra init
  • A načítanie adresy IP, jej dátumu a času.

Zaujímavé články...