Какво е JSP филтър?
- Филтрите се използват за филтриране на функционалността на уеб приложението Java.
- Те прихващат заявките от клиента, преди да се опитат да получат достъп до ресурса
- Те манипулират отговорите от сървъра и изпращат на клиента.
Видове филтри в JSP
- Филтри за удостоверяване
- Филтри за компресиране на данни
- Криптиращи филтри
- MIME верижни филтри
- Филтри за регистриране
- Токенизиращи филтри
Филтрите са дефинирани в web.xml и те са карта към сървлета или JSP. Когато JSP контейнерът стартира с уеб приложението, той създава екземпляра на всеки филтър, деклариран в дескриптора за разполагане.
Следват методите за филтриране:
-
Публична невалидна doFilter (ServletRequest, ServletResponse, FilterChain)
Това се нарича всеки път, когато заявка / отговор се предава от всеки клиент, когато се иска от ресурс.
-
Публичен празен init (FilterConfig)
Това означава, че филтърът е пуснат в експлоатация
-
Публична невалидност унищожи ()
Това означава, че филтърът е изваден от сервиз.
Пример:
В този пример създадохме филтър и картографирахме в web.xml
Gurufilter.java
демотест на пакета;импортиране на java.io.IOException;импортиране на java.util.Date;импортиране на javax.servlet.Filter;импортиране на javax.servlet.FilterChain;импортиране на javax.servlet.FilterConfig;импортиране на javax.servlet.ServletException;импортиране на javax.servlet.ServletRequest;импортиране на javax.servlet.ServletResponse;импортиране на Javax.servlet.http.HttpServletRequest;публичен клас GuruFilter прилага Filter {public void doFilter (ServletRequest заявка, ServletResponse отговор, Filterchain верига) хвърля IOException, ServletException {// TODO Автоматично генериран мъниче от методHttpServletRequest req = (HttpServletRequest) заявка;Низ ipAddress = req.getRemoteAddr ();System.out.println ("IP адрес" + ipAddress + ", Часът е"+ нова дата (). toString ());// предаваме заявката по веригата на филтъраchain.doFilter (заявка, отговор);}/ *** @ see Filter # init (FilterConfig)* /public void init (FilterConfig fConfig) хвърля ServletException {Низ guruparam = fConfig.getInitParameter ("guru-param");// Отпечатваме параметъра initSystem.out.println ("Тест Param: + guruparam);}}
Web.xml
xml version = "1.0" encoding = "UTF-8"?><име на дисплей>тест <филтър><описание><име на дисплей>GuruFilter GuruFilter demotest.GuruFilter guru-param Това е параметърът на гуру GuruFilter / GuruFilter
Обяснение на кода:
Gurufilter.java
Кодов ред 17-32 : Тук използваме метода "doFilter", където получаваме обект на заявка (в нашия пример обектът на заявката е req (HttpServletRequest обект)) и получаваме отдалечения адрес на клиента и печат на конзолата, а също и печат дата и час на конзолата.
Кодова линия 33-37 : Тук използваме init метод, където вземаме параметъра init и отпечатваме параметъра init в конзолата.
Web.xml
Кодова линия 10-11 - Картиране на GuruFilter с името на класа GuruFilter.java, където имаме име на филтър като GuruFilter и клас на филтър, който е пътят на директорията на класа GuruFilter
Кодова линия 13-15 - Картографиране на параметъра init с име guru-param и получаване на стойността му, която се поставя под филтърния маркер, така че този init-param е дефиниран за gurufilter
Изход:
Когато изпълните горния код, получавате следния изход:
- Изходът е Test Param от параметъра init
- И извличане на IP адрес, дата и час от него.