Wat is JSP-filter?
- Filters worden gebruikt voor het filteren van functionaliteit van de Java-webapplicatie.
- Ze onderscheppen de verzoeken van de klant voordat ze proberen toegang te krijgen tot de bron
- Ze manipuleren de reacties van de server en worden naar de klant gestuurd.
Typen filters in JSP
- Authenticatiefilters
- Gegevenscompressiefilters
- Versleutelingsfilters
- MIME-kettingfilters
- Filters voor logboekregistratie
- Tokeniserende filters
Filters worden gedefinieerd in web.xml en zijn een toewijzing aan servlet of JSP. Wanneer de JSP-container begint met de webtoepassing, wordt de instantie gemaakt van elk filter dat is gedeclareerd in de Deployment-descriptor.
Hieronder volgen de filtermethoden:
-
Openbare leegte doFilter (ServletRequest, ServletResponse, FilterChain)
Dit wordt elke keer aangeroepen wanneer een verzoek / antwoord wordt doorgegeven van elke client, wanneer het wordt aangevraagd vanuit een bron.
-
Public void init (FilterConfig)
Dit is om aan te geven dat het filter in gebruik wordt genomen
-
Openbare leegte vernietigen ()
Dit om aan te geven dat het filter uit dienst is genomen.
Voorbeeld:
In dit voorbeeld hebben we een filter gemaakt en in kaart gebracht in web.xml
Gurufilter.java
pakket demotest;importeer java.io.IOException;importeer java.util.Date;importeer javax.servlet.Filter;importeer javax.servlet.FilterChain;importeer javax.servlet.FilterConfig;importeer javax.servlet.ServletException;importeer javax.servlet.ServletRequest;importeer javax.servlet.ServletResponse;Javax.servlet.http.HttpServletRequest importeren;openbare klasse GuruFilter implementeert Filter {public void doFilter (ServletRequest-verzoek, ServletResponse-antwoord, Filterchain-keten) gooit IOException, ServletException {// TODO Automatisch gegenereerde methodestubHttpServletRequest req = (HttpServletRequest) verzoek;String ipAddress = req.getRemoteAddr ();System.out.println ("IP Address" + ipAddress + ", Time is"+ nieuwe datum (). toString ());// geef het verzoek door langs de filterketenchain.doFilter (verzoek, antwoord);* @zie Filter # init (FilterConfig)public void init (FilterConfig fConfig) gooit ServletException {String guruparam = fConfig.getInitParameter ("guru-param");// Druk de init-parameter afSystem.out.println ("Testparameter: + guruparam);
Web.xml
xml version = "1.0" encoding = "UTF-8"?>test GuruFilter GuruFilter demotest.GuruFilter guru-param Dit is de goeroe-parameter GuruFilter / GuruFilter
Uitleg van de code:
Gurufilter.java
Coderegel 17-32 : hier gebruiken we de "doFilter" -methode waarbij we een verzoekobject krijgen (in ons voorbeeld is het verzoekobject req (HttpServletRequest-object)) en het externe adres van de client ophalen en afdrukken op de console en ook afdrukken datum en tijd op de console.
Coderegel 33-37 : hier gebruiken we de init-methode waarbij we de init-parameter nemen en de init-parameter in de console afdrukken.
Web.xml
Coderegel 10-11 - Mapping van het GuruFilter met de klassenaam GuruFilter.java waar we filternaam hebben als GuruFilter en filterklasse die het mappad is van de GuruFilter-klasse
Coderegel 13-15 - Het toewijzen van de init-parameter met de naam guru-param en het ophalen van de waarde ervan die onder de filter-tag wordt geplaatst, zodat deze init-param is gedefinieerd voor gurufilter
Uitgang:
Als je de bovenstaande code uitvoert, krijg je de volgende output:
- De uitvoer is Test Param van de init-parameter
- En het ophalen van IP-adres, datum en tijd ervan.