Filterkaartping in Web.xml
โก Slimme samenvatting
Filterkaartping De Web.xml-code definieert hoe JSP-filters clientverzoeken en serverreacties onderscheppen. Java webapplicatie. Het registreert elk filter in de implementatiebeschrijving, waardoor authenticatie, logging, compressie en versleuteling mogelijk worden voordat resources worden benaderd.

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 client voordat deze probeert toegang te krijgen tot de bron.
- Ze manipuleren de antwoorden van de server en sturen deze naar de client.
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.
Soorten filters in JSP
JSP ondersteunt verschillende filtertypen, die elk een specifiek aspect van de request-response-cyclus afhandelen:
- Authenticatiefilters
- Gegevenscompressiefilters
- Encryptiefilters
- MIME-ketenfilters
- Logboekfilters
- Tokeniserende filters
JSP-filtermethoden
Als je de verschillende filtertypen kent, is het handig om de methoden te begrijpen die de levenscyclus van een filter bepalen. Hieronder volgen 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 geeft aan dat het filter in de JSP-pagina 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 methode "doFilter" om het request-object (in ons voorbeeld is het request-object req (HttpServletRequest-object)) te verkrijgen, het externe IP-adres van de client op te halen en dit, samen met de datum en tijd, in de console weer te geven.
Code Lijn 33-37: Hier gebruiken we de `init`-methode, waarbij we de `init`-parameter ontvangen en deze 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.

