Filtreeri kaartping Web.xml-failis
⚡ Nutikas kokkuvõte
Filtreeri kaartping Web.xml-is määratletakse, kuidas JSP filtrid kliendi päringuid ja serveri vastuseid pealt kuulavad Java veebirakendus. See registreerib iga filtri juurutuse deskriptoris, võimaldades autentimist, logimist, tihendamist ja krüptimist enne ressurssidele juurdepääsu.
Mis on JSP-filtrid?
- Web.xml-i filtreid kasutatakse funktsioonide filtreerimiseks Java veebirakendus.
- Nad pealtkuulavad kliendi päringud enne, kui nad ressursile juurde pääsevad.
- Nad manipuleerivad vastustega serverist ja saadetakse kliendile.
Filtrid on määratletud failis web.xml ja need on servlet- või servletikaardid JSP. Kui JSP-konteiner käivitub veebirakendusega, loob see failis web.xml iga filtri eksemplari, mis on deklareeritud juurutamise deskriptoris.
Filtrite tüübid JSP-s
JSP toetab mitut tüüpi filtreid, millest igaüks käsitleb päringu-vastuse tsüklis kindlat probleemi:
- Autentimisfiltrid
- Andmete tihendamise filtrid
- Krüpteerimisfiltrid
- MIME kettfiltrid
- Logimisfiltrid
- Tokeniseerivad filtrid
JSP filtrimeetodid
Kui filtritüübid on teada, on kasulik mõista meetodeid, mis filtri elutsüklit kontrollivad. Järgnevalt on toodud filtrimeetodid:
Public void doFilter (ServletRequest, Servleti vastus, FilterChain)
Seda kutsutakse iga kord, kui päring/vastus edastatakse igalt kliendilt, kui seda küsitakse ressursist.
Avalik tühine init (FilterConfig)
See näitab, et JSP-s on filter kasutusele võetud.
Avalik tühine hävitamine()
See näitab, et filter on hooldusest välja võetud.
Näide
Selles näites oleme loonud filtri ja kaardistanud 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>
Koodi selgitus
Gurufilter.java
Code Rida 17-32: Siin kasutame meetodit „doFilter”, kus saame päringuobjekti (meie näites on päringuobjekt req (HttpServletRequest objekt)) ja saame kliendi serveri aadressi ning prindime konsoolile ja ka kuupäeva ja kellaaja.
Code Rida 33-37: Siin kasutame init-meetodit, kus võtame init-parameetri ja prindime selle konsoolis välja.
Web.xml
Code Rida 10-11: Filtreeri kaartiping web.xml-is GuruFiltreeri klassi nimega GuruFilter.java, kus meil on filtri nimi GuruFilter ja filtriklass, mis on kataloogi tee GuruFiltri klass.
Code Rida 13-15: kaartping init-parameeter nimega guru-param ja selle väärtuse hankimine, mis paigutatakse filtri sildi alla, seega on see init-parameeter gurufilteri jaoks defineeritud.
Väljund:
Kui käivitate ülaltoodud koodi, saate järgmise väljundi:
- Väljundiks on init parameetri Test Param
- Ja selle IP-aadressi, kuupäeva ja kellaaja toomine.


