PTI-IT

Интернет програмиране с JAVA

View the Project on GitHub theVelislavKolesnichenko/PTI-IT

Servlet Filter

Сървлет филтрите са Java класове, които могат да бъдат използвани в Java web програмирането за следните цели :

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

Деклариране на филтри:

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

Методи на сървлет филтър

Филтърът е Java клас, който реализира интерфейса javax.servlet.Filter.

Интерфейсът javax.servlet.Filter дефинира методите:

Пример:

Servlet филтър, отпечатващ IP адреса на клиенти и текущия час дата:

@WebFilter(urlPatterns = "/CheckBox")
public class LogFilter implements Filter {
	public void init(FilterConfig fConfig) throws ServletException {
        String testParam = fConfig.getInitParameter("test-param");
        System.out.println("Test Param: "+ testParam);
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        String ipAddress = request.getRemoteAddr();
        System.out.println("IP "+ipAddress + ", Time " + new Date().toString());
        chain.doFilter(request, response);
    }
}

Анотацията @WebFilter декларира класа, който го съдържа, като сървлет филтър. Параметърът на анотацията - urlPatterns = “/CheckBox”) оказва името на сървлета, за който ще бъде приложен филтъра. В зависимост от броя и типа параметри на анотацията има различни случаи на използване на филтрите:

@WebFilter(servletNames = {"MyOwnServlet", "UploadServlet"})
public class MyFilter implements Filter {
...
}