Картографиране на филтър Web.xml в JSP Servlet с пример

Съдържание:

Anonim

Какво е 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

<име на дисплей>тест <филтър><описание><име на дисплей>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 адрес, дата и час от него.