Suodata karttaping Web.xml-tiedostossa
โก รlykรคs yhteenveto
Suodata karttaping Web.xml-tiedostossa mรครคritellรครคn, miten JSP-suodattimet sieppaavat asiakaspyynnรถt ja palvelimen vastaukset Java verkkosovellus. Se rekisterรถi jokaisen suodattimen kรคyttรถรถnottokuvaajaan, mikรค mahdollistaa todennuksen, lokinnuksen, pakkauksen ja salauksen ennen resurssien kรคyttรถรค.

Mikรค on JSP-suodattimet?
- Web.xml:n suodattimia kรคytetรครคn suodatustoimintoihin Java verkkosovellus.
- Ne sieppaavat asiakkaan pyynnรถt ennen kuin he yrittรคvรคt kรคyttรครค resurssia.
- Ne kรคsittelevรคt palvelimelta saapuvia ja asiakkaalle lรคhetettyjรค vastauksia.
Suodattimet mรครคritellรครคn web.xml:ssรค, ja ne ovat kartta servletiin tai JSP. Kun JSP-sรคilรถ kรคynnistyy verkkosovelluksessa, se luo web.xml-tiedostoon jokaisen suodattimen ilmentymรคn, joka on ilmoitettu kรคyttรถรถnoton kuvauksessa.
Suodattimien tyypit JSP:ssรค
JSP tukee useita suodatintyyppejรค, joista jokainen kรคsittelee tiettyรค ongelmaa pyyntรถ-vastaus-syklissรค:
- Todennussuodattimet
- Tietojen pakkaussuodattimet
- Salaussuodattimet
- MIME-ketjusuodattimet
- Kirjaussuodattimet
- Tokenointisuodattimet
JSP-suodatusmenetelmรคt
Kun tiedรคt suodatintyypit, on hyรถdyllistรค ymmรคrtรครค menetelmรคt, jotka ohjaavat suodattimen elinkaarta. Seuraavat suodatinmenetelmรคt ovat:
Public void doFilter (ServletRequest, ServletResponse, FilterChain)
Tรคtรค kutsutaan aina, kun pyyntรถ/vastaus vรคlitetรครคn jokaiselta asiakkaalta, kun sitรค pyydetรครคn resurssilta.
Julkinen void init (FilterConfig)
Tรคmรค osoittaa, ettรค JSP-suodatin on otettu kรคyttรถรถn.
Julkinen void tuhota()
Tรคmรค osoittaa, ettรค suodatin on poistettu kรคytรถstรค.
esimerkki
Tรคssรค esimerkissรค olemme luoneet suodattimen ja kartoittaneet sen Java web.xml-suodatin.
Gurusuodatin.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>
Koodin selitys
Gurusuodatin.java
Code Rivi 17โ32: Tรคssรค kรคytรคmme โdoFilterโ-metodia, jossa saamme pyyntรถobjektin (esimerkissรคmme pyyntรถobjekti on req (HttpServletRequest-objekti)) ja saamme asiakkaan etรคosoitteen ja tulostamme sen konsoliin sekรค pรคivรคmรครคrรคn ja kellonajan.
Code Rivi 33โ37: Tรคssรค kรคytรคmme init-metodia, jossa otamme init-parametrin ja tulostamme init-parametrin konsoliin.
Web.xml
Code Rivi 10โ11: Suodata karttaping web.xml-tiedostossa GuruSuodata luokan nimellรค GuruFilter.java, jossa suodattimen nimi on GuruSuodatin ja suodatinluokka, joka on hakemistopolku GuruSuodatinluokka.
Code Rivi 13โ15: karttaping init-parametri nimeltรค guru-param ja sen arvon hakeminen, joka sijoitetaan filter-tagin alle, joten tรคmรค init-param on mรครคritelty gurufilterille.
lรคhtรถ:
Kun suoritat yllรค olevan koodin, saat seuraavan tulosteen:
- Lรคhtรถ on Test Param init-parametrista
- Ja IP-osoitteen, pรคivรคmรครคrรคn ja kellonajan hakeminen.

