Web.xml'de Filtre Eşleme

JSP Filtreleri Nedir?

  • web.xml dosyasındaki filtreler, web.xml dosyasının işlevselliğini filtrelemek için kullanılır. Java web uygulaması.
  • Kaynağa erişmeye çalışmadan önce istemciden gelen istekleri engelliyorlar
  • Sunucudan gelen yanıtları yönetip istemciye gönderirler.

JSP'deki Filtre Türleri

  • Kimlik doğrulama filtreleri
  • Veri sıkıştırma filtreleri
  • Şifreleme filtreleri
  • MIME zincir filtreleri
  • Günlük Filtreleri
  • Tokenleştirme filtreleri

Filtreler web.xml'de tanımlanır ve sunucu uygulamasına bir haritadır veya JSP. JSP kapsayıcısı web uygulamasıyla başladığında, dağıtım tanımlayıcısında bildirilen web.xml dosyasındaki her filtrenin örneğini oluşturur.

JSP Filtre Yöntemleri

Filtreleme yöntemleri şunlardır:

Genel void doFilter(ServletRequest, ServletResponse, FilterChain)

Bu, bir kaynaktan talep edildiğinde her istemciden bir istek/yanıt iletildiğinde her zaman çağrılır.

Genel void init(FilterConfig)

Bu, JSP'deki filtrenin hizmete alındığını belirtmek içindir

Genel boşluk yok etme()

Bu, filtrenin hizmetten çıkarıldığını gösterir.

Örnek E-posta

Bu örnekte filtre oluşturduk ve haritalandırdık. Java web.xml filtresi

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>

Kodun açıklaması

Gurufilter.java

Kod Satırı 17-32: Burada, istek nesnesini aldığımız (örneğimizde istek nesnesi req(HttpServletRequest nesnesidir)) ve istemcinin uzak adresini alıp konsola yazdırdığımız ve ayrıca konsolda tarih ve saati yazdırdığımız “doFilter” yöntemini kullanıyoruz.

Kod Satırı 33-37: Burada init parametresini alıp konsolda init parametresini yazdırdığımız init yöntemini kullanıyoruz.

Web.xml

Kod Satırı 10-11: GuruFilter için web.xml'de GuruFilter.java sınıf adıyla filtre eşlemesi, burada filtre adı GuruFilter ve filtre sınıfı GuruFilter sınıfının dizin yoludur

Kod Satırı 13-15: Guru-param adlı init parametresini eşlemek ve filter etiketi altında yer alan değerini almak, bu init-param'ın gurufilter için tanımlanmış olduğunu gösterir.

Çıktı:

Yukarıdaki kodu çalıştırdığınızda aşağıdaki çıktıyı alırsınız:

JSP Filtre Yöntemleri

  • Çıkış, başlatma parametresinden Test Param'dır
  • Ve IP adresi, tarihi ve saati getiriliyor.