Филтриране на картатаping в Web.xml

⚡ Умно обобщение

Филтриране на картатаping в Web.xml се определя как JSP филтрите прехващат клиентските заявки и отговорите на сървъра в Java уеб приложение. То регистрира всеки филтър в дескриптора за внедряване, като по този начин позволява удостоверяване, регистриране, компресиране и криптиране, преди да се осъществи достъп до ресурсите.

  • 🧩 Дефиниран филтър: Компонент web.xml, който филтрира заявки и отговори в Java уеб приложение.
  • 🔐 Типове филтри: Удостоверяване, компресиране на данни, криптиране, MIME верига, регистриране и филтри за токенизиране.
  • Методи за жизнения цикъл: init() стартира филтъра, doFilter() се изпълнява при всяка заявка, а destroy() го премахва от услугата.
  • Картаping: Филтърът и картата на филтритеping таговете свързват клас филтър с URL шаблон в web.xml.
  • 🧪 Пример: GuruФилтърът регистрира IP адреса, датата и часа на клиента, след което предава заявката по веригата на филтрите.

Филтриране на картатаping в Web.xml

Какво е JSP филтри?

  • Филтрите в web.xml се използват за филтриране на функционалността на Java уеб приложение.
  • Те прехващат заявките от клиента, преди той да се опита да получи достъп до ресурса.
  • Те манипулират отговорите от сървъра и изпратените до клиента.

Филтрите са дефинирани в web.xml и те са карта към сървлет или JSP. Когато JSP контейнерът стартира с уеб приложението, той създава екземпляра на всеки филтър в web.xml, който е деклариран в дескриптора за разполагане.

Видове филтри в JSP

JSP поддържа няколко типа филтри, всеки от които обработва специфичен проблем в цикъла заявка-отговор:

  • Филтри за удостоверяване
  • Филтри за компресиране на данни
  • Филтри за криптиране
  • MIME верижни филтри
  • Филтри за регистриране
  • Токенизиращи филтри

Методи за филтриране на JSP

След като знаете типовете филтри, е полезно да разберете методите, които контролират жизнения им цикъл. Следват методите за филтриране:

Public void doFilter(ServletRequest, ServletResponse, FilterChain)

Това се извиква всеки път, когато се предава заявка/отговор от всеки клиент, когато се изисква от ресурс.

Публично невалидно инициализиране (FilterConfig)

Това показва, че филтърът в JSP е пуснат в експлоатация.

Публично празно унищожаване ()

Това означава, че филтърът е изваден от експлоатация.

Пример

В този пример създадохме филтър и го картографирахме Java филтър за web.xml.

Guruфилтър.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>

Обяснение на кода

Guruфилтър.java

Code Ред 17-32: Тук използваме метода „doFilter“, където получаваме обекта на заявката (в нашия пример обектът на заявката е req (обект HttpServletRequest)), получаваме отдалечения адрес на клиента и го отпечатваме на конзолата, както и датата и часа.

Code Ред 33-37: Тук използваме метода init, където вземаме параметъра init и го отпечатваме в конзолата.

Web.xml

Code Ред 10-11: Филтриране на картатаping в web.xml за GuruФилтриране с името на класа GuruFilter.java, където имаме име на филтър като GuruФилтър и клас на филтър, който е пътят на директорията на GuruКлас на филтъра.

Code Ред 13-15: Картаping инициализиращият параметър с име guru-param и получаването на неговата стойност, която се поставя под етикета filter, така че този инициализиращ параметър е дефиниран за gurufilter.

Изход:

Когато изпълните горния код, получавате следния изход:

Методи за филтриране на JSP

  • Резултатът е Test Param от init параметъра
  • И извличане на IP адрес, дата и час от него.

Въпроси и Отговори

Сървлетът обработва и генерира отговор за заявка, докато филтърът прехваща заявки и отговори, за да извърши предварителна или последваща обработка, като например удостоверяване или регистриране, без да генерира самия краен отговор.

Филтрите се изпълняват в реда, в който са настроени за тяхната карта на филтриping Записите се появяват в web.xml. Контейнерът ги свързва във верига, така че първият картографиран филтър се изпълнява първи при заявката и последен при отговора.

JSP филтърът има три метода за жизнения цикъл: init() за инициализиране на филтъра, doFilter() за обработка на всяка заявка и отговор и destroy() за освобождаване на ресурси, когато филтърът бъде премахнат от услугата.

Изкуственият интелект може да анализира стека traces, откриване на неправилна карта на филтритеping поръчка, предлагане на липсващи init параметри и откриване на пречки в производителността в логиката на doFilter, helping разработчиците решават проблеми с филтрите по-бързо по време на тестване и преглед на кода.

Да. Изкуственият интелект може да генерира web.xml филтър и filter-mapping записи от описание на желаното поведение, включително URL шаблони и инициализационни параметри, които разработчиците след това преглеждат и коригират за своето приложение.

Обобщете тази публикация с: