Filterkaartping in Web.xml
Wat zijn JSP-filters?
- Filters in web.xml worden gebruikt voor het filteren van de functionaliteit van het Java web applicatie.
- Ze onderscheppen de verzoeken van de klant voordat ze proberen toegang te krijgen tot de bron
- Ze manipuleren de antwoorden van de server en sturen deze naar de client.
Soorten filters in JSP
- Authenticatiefilters
- Gegevenscompressiefilters
- Encryptiefilters
- MIME-ketenfilters
- Logboekfilters
- Tokeniserende filters
Filters worden gedefinieerd in web.xml en vormen een toewijzing voor servlet- of JSP. Wanneer de JSP-container start met de webtoepassing, wordt er een exemplaar gemaakt van elk filter in web.xml dat is gedeclareerd in de implementatiedescriptor.
JSP-filtermethoden
Hieronder staan โโde filtermethoden:
Publieke void doFilter(ServletRequest, ServletResponse, FilterChain)
Dit wordt elke keer aangeroepen wanneer een verzoek/antwoord wordt doorgegeven van elke client wanneer dit wordt aangevraagd vanuit een bron.
Publieke leegte init(FilterConfig)
Dit is om aan te geven dat het filter in JSP in gebruik is genomen
Openbare leegte vernietigen()
Dit om aan te geven dat het filter buiten gebruik is gesteld.
Voorbeeld
In dit voorbeeld hebben we een filter gemaakt en in kaart gebracht Java web.xml-filter
Gurufilter.java
package 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;
import Javax.servlet.http.HttpServletRequest;
public class GuruFilter implements Filter {
public void doFilter(ServletRequest request, ServletResponse response, Filterchain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest req = (HttpServletRequest) request;
String ipAddress = req.getRemoteAddr();
System.out.println("IP Address "+ipAddress + ", Time is"
+ new Date().toString());
// pass the request along the filter chain
chain.doFilter(request, response);
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
String guruparam = fConfig.getInitParameter("guru-param");
//Print the init parameter
System.out.println("Test Param: " + guruparam);
}
}
Web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name> test</display-name> <filter> <description> </description> <display-name> GuruFilter</display-name> <filter-name>GuruFilter</filter-name> <filter-class>demotest.GuruFilter</filter-class> <init-param> <param-name>guru-param</param-name> <param-value>This is guru paramter</param-value> </init-param> </filter> <filter-mapping> <filter-name>GuruFilter</filter-name> <url-pattern>/GuruFilter</url-pattern> </filter-mapping>
Verklaring van de code
Gurufilter.java
Code Lijn 17-32:Hier gebruiken we de โdoFilterโ-methode waarbij we het aanvraagobject ophalen (in ons voorbeeld is het aanvraagobject req(HttpServletRequest object)) en het externe adres van de client ophalen en op de console afdrukken, en ook de datum en tijd op de console afdrukken.
Code Lijn 33-37: Hier gebruiken we de init-methode waarbij we de init-parameter gebruiken en de init-parameter in de console afdrukken.
Web.xml
Code Lijn 10-11: Filterkaartping in web.xml voor GuruFilteren met de klassenaam GuruFilter.java waarin we filter-name hebben als GuruFilter en filterklasse, dat is het mappad van GuruFilterklasse
Code Lijn 13-15: Wereldmapping De init-parameter heet guru-param en de waarde ervan wordt onder de filter-tag geplaatst. Deze init-param is dus gedefinieerd voor gurufilter.
Output:
Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer:
- De uitvoer is Test Param van de init-parameter
- En het ophalen van het IP-adres, de datum en het tijdstip ervan.

