>  기사  >  Java  >  Java에서 필터와 리스너를 사용하는 방법

Java에서 필터와 리스너를 사용하는 방법

王林
王林앞으로
2023-05-20 08:58:111419검색

    필터: 필터

    개념

    생활 속 필터: 정수기, 공기청정기, 도적, 웹의 필터: 서버 리소스에 액세스할 때 필터는 요청을 가로채고 일부 특수 기능을 완료할 수 있습니다. 필터 기능:

    일반적으로 일반적인 작업을 완료하는 데 사용됩니다. 예: 로그인 확인, 통합 인코딩 처리, 민감한 문자 필터링...

    빠른 시작

    단계

    1. 인터페이스 Filter

    를 구현하기 위한 클래스 정의

    3. 차단 경로

    • web.

    • 실행 필터
    • 해제된 리소스를 실행

    돌아와서 필터 해제 코드 아래의 코드를 실행합니다

    필터 수명주기 방식

    초기화 : 서버가 시작된 후 Filter 객체가 생성되고 init 메소드가 호출됩니다. 한 번만 실행됩니다. 리소스를 로드하는 데 사용됩니다

    • doFilter: 리소스에 대한 요청이 차단될 때마다 실행됩니다. 여러 번 실행됨

    • destroy: 서버가 종료된 후 필터 개체가 삭제됩니다. 서버가 정상적으로 종료되면 destroy 메소드가 실행됩니다. 한 번만 실행됩니다. 리소스를 해제하는 데 사용됩니다

    • 필터 구성에 대한 자세한 설명

    차단 경로 구성:

      특정 리소스 경로: /index.jsp index.jsp 리소스에 접근할 때만 필터가 실행됩니다
    • 차단 디렉터리: /user/* /user 하위의 모든 리소스에 접근 시 필터가 실행됩니다
    • 접미사 이름 차단: *.jsp 접미사 jsp가 포함된 모든 리소스에 접근 시 필터가 실행됩니다
    • 모든 리소스 차단: /* 모든 리소스에 액세스할 때 필터가 실행됩니다.

    가로채기 방법 구성: 리소스에 액세스하는 방식

    주석 구성:
    • dispatcherTypes 속성 설정
    • 요청:기본값. 브라우저가 리소스를 직접 요청합니다

    • FORWARD: 리소스에 대한 전달 액세스

    INCLUDE: 리소스에 대한 액세스 포함

    ERROR: 리소스로 오류 점프

    • ASYNC: 리소스에 대한 비동기 액세스

      web .xml 구성 라벨만 설정하세요
    • 필터 체인(여러 필터 구성)
    • 실행 순서: 필터가 두 개인 경우: 필터 1과 필터 2

    • Filter 1

    • Filter 2

    • 리소스 실행

    Filter 2

    Filter 1

      필터 순서 문제:
    • 주석 구성: 클래스 이름의 문자열 비교 규칙에 따라 비교, 값이 작음 먼저 실행됨
    • AFilter와 BFilter 사이에서는 AFilter가 먼저 실행됩니다. 2. web.xml 구성: 위에서 정의한 사람이 먼저 실행합니다.
    • Listener: 청취자

    • 개념

      : 웹의 세 가지 주요 구성 요소 중 하나입니다. 이벤트 청취 메커니즘

    • 이벤트: 사물

    이벤트 소스: 이벤트가 발생하는 곳

    • 리스너: 객체

    등록된 모니터링: 이벤트, 이벤트 소스, 리스너를 Together에 바인딩합니다. 이벤트 소스에서 이벤트가 발생하면 리스너 코드가 실행됩니다.

    ServletContextListener: ServletContext 객체의 생성 및 소멸 메소드를 수신합니다. : 이 메소드는 ServletContext 객체가 생성된 후 호출됩니다. 단계:

    • 클래스 정의 및 ServletContextListener 인터페이스 구현

    • Copy 메소드

    • Configuration

    • web.xml

    • @WebFilter("/*")//访问所有资源之前,都会执行该过滤器
      public class FilterDemo1 implements Filter {
      	@Override
      	public void init(FilterConfig filterConfig) throws ServletException {
      
      	}
      
      	@Override
      	public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
      		System.out.println("filterDemo1被执行了....");
      
      
      		//放行
      		filterChain.doFilter(servletRequest,servletResponse);
      
      	}
      
      	@Override
      	public void destroy() {
      
      	}
      }
    초기화 매개변수 지정

    void contextDestroyed(ServletContextEvent sce) :ServletContext对象被销毁之前会调用该方法 void contextInitialized(ServletContextEvent sce)주석:

      @WebList 에너

    위 내용은 Java에서 필터와 리스너를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제