>  기사  >  Java  >  자바 필터를 구현하는 방법

자바 필터를 구현하는 방법

(*-*)浩
(*-*)浩원래의
2019-05-22 16:51:537209검색

Java 필터 구현 단계: 1. 필터 인터페이스를 구현하기 위한 필터 클래스 작성 2. 인터페이스에서 아직 구현되지 않은 메소드 구현(doFilter 메소드 구현에 중점) 3. web.xml에서 구성 (주로 필터링하려는 리소스를 구성합니다).

자바 필터를 구현하는 방법

Filter는 필터라고도 합니다. WEB 개발자는 필터 기술을 사용하여 Jsp, Servlet, 정적 사진 파일과 같은 웹 서버에서 관리하는 모든 웹 리소스를 제어합니다. 또는 정적 HTML 파일 등을 사용하여 일부 특수 기능을 수행합니다. 예를 들어, URL 수준의 권한 접근 제어, 민감한 어휘 필터링, 응답 정보 압축 등 일부 고급 기능을 구현할 수 있습니다.

그럼 어떻게 달성되나요?

Filter 인터페이스 구현을 위한 필터 클래스 작성

인터페이스에 아직 구현되지 않은 메소드 구현(doFilter 메소드 구현에 중점)

web.xml에서 구성(주로 필터링할 리소스 구성)

어떻게 작동하나요?

Filter 인터페이스에는 doFilter 메소드가 있습니다. 필터를 작성하고 어떤 웹 리소스를 차단할지 구성하면 웹 서버는 웹 리소스의 서비스 메소드를 호출하기 전에 매번 필터의 doFilter 메소드를 호출합니다. , ,

이 메서드 내에서 코드를 작성하면 다음과 같은 목적을 달성할 수 있습니다.
대상 리소스를 호출하기 전에 코드 조각을 실행하도록 합니다.
대상 리소스를 호출할지 여부(즉, 사용자가 웹 리소스에 액세스하도록 허용할지 여부).
대상 리소스를 호출한 후 코드를 실행해 보세요.
웹 서버가 doFilter 메소드를 호출하면 filterChain 객체가 전달됩니다. filterChain 객체는 필터 인터페이스에서 가장 중요한 객체이며
doFilter 메소드를 제공합니다. 메서드를 호출하면 웹 서버가 웹 리소스의 서비스 메서드를 호출합니다. 즉, 웹 리소스에 액세스합니다. 그렇지 않으면 웹 리소스에 액세스할 수 없습니다.

필터 예:

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* @author yangcq
* @description 过滤器Filter的工作原理
*/
public class FilterTest implements Filter{
    public void destroy() {
        System.out.println("----Filter销毁----");
    }
public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException {
    // 对request、response进行一些预处理
    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");
    response.setContentType("text/html;charset=UTF-8");
    System.out.println("----调用service之前执行一段代码----");
    filterChain.doFilter(request, response); // 执行目标资源,放行
    System.out.println("----调用service之后执行一段代码----");
}
    public void init(FilterConfig arg0) throws ServletException {
        System.out.println("----Filter初始化----");
    }
}

web.xml에서 필터 구성:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
  <display-name></display-name>    
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <!--配置过滤器-->
  <filter>
      <filter-name>FilterTest</filter-name>
      <filter-class>com.yangcq.filter.FilterTest</filter-class>
  </filter>
  <!--映射过滤器-->
  <filter-mapping>
      <filter-name>FilterTest</filter-name>
      <!--“/*”表示拦截所有的请求 -->
      <url-pattern>/*</url-pattern>
  </filter-mapping>
</web-app>

위 내용은 자바 필터를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.