Szűrőleképezés a Web.xml-ben
Mi az a JSP szűrő?
- A web.xml-ben található szűrők a szűrési funkciókhoz használhatók Java webalkalmazás.
- Elfogják az ügyféltől érkező kéréseket, mielőtt megpróbálnának hozzáférni az erőforráshoz
- Manipulálják a szervertől érkező és a kliensnek küldött válaszokat.
Szűrők típusai a JSP-ben
- Hitelesítési szűrők
- Adattömörítési szűrők
- Titkosító szűrők
- MIME láncszűrők
- Naplózási szűrők
- Tokenizáló szűrők
A szűrők a web.xml-ben vannak definiálva, és a servlethez ill JSP. Amikor a JSP-tároló elindul a webalkalmazással, létrehozza a telepítésleíróban deklarált web.xml fájl minden szűrőjének példányát.
JSP szűrőmódszerek
A szűrési módszerek a következők:
Public void doFilter (ServletRequest, ServletResponse, FilterChain)
Ezt minden alkalommal meghívják, amikor minden ügyféltől kérést/választ küldenek, amikor egy erőforrástól kérik.
Nyilvános érvénytelen init (FilterConfig)
Ez azt jelzi, hogy a JSP szűrője üzembe került
Public void semmisít()
Ez azt jelzi, hogy a szűrőt kivették a szervizből.
Példa
Ebben a példában szűrőt hoztunk létre és leképeztünk Java web.xml szűrő
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>
A kód magyarázata
Gurufilter.java
Kódsor 17-32: Itt a „doFilter” metódust használjuk, ahol kérés objektumot kapunk (példánkban a kérelem objektum a req(HttpServletRequest objektum)), és megkapjuk a kliens távoli címét és a nyomtatást a konzolon, valamint a dátumot és az időt a konzolon. konzol.
Kódsor 33-37: Itt az init metódust használjuk, ahol az init paramétert vesszük, és kinyomtatjuk az init paramétert a konzolban.
Web.xml
10-11. kódsor: Szűrőleképezés a web.xml fájlban a GuruFilterhez a GuruFilter.java osztálynévvel, ahol a szűrőnév GuruFilterként és szűrőosztályunk van, amely a GuruFilter osztály elérési útja
13-15. kódsor: A guru-param nevű init paraméter leképezése és értékének lekérése ami a szűrőcímke alá kerül így ez az init-param a gurufilterhez lett definiálva
output:
Amikor végrehajtja a fenti kódot, a következő kimenetet kapja:
- A kimenet a Test Param az init paraméterből
- És az IP-cím, a dátum és az idő lekérése.