>  기사  >  Java  >  필터란 무엇입니까?

필터란 무엇입니까?

青灯夜游
青灯夜游원래의
2020-07-28 12:06:542648검색

필터란 무엇입니까?

필터는 연결된 서블릿이나 JSP 페이지 이전에 서버에서 실행되는 프로그램입니다. 필터는 하나 이상의 서블릿이나 JSP 페이지에 연결될 수 있으며 이러한 리소스에 입력되는 요청 정보를 검사할 수 있습니다.

이후 필터는 다음과 같은 선택을 할 수 있습니다:

① 기존 방식으로 리소스를 호출합니다(예: 서블릿 또는 JSP 페이지 호출).

②수정된 요청 정보를 활용하여 자원을 호출하세요.

③리소스를 호출하되 클라이언트에 응답을 보내기 전에 수정하세요.

4리소스 호출을 차단하고, 대신 다른 리소스로 이동하고, 특정 상태 코드를 반환하거나 대체 출력을 생성하세요.

필터 작동 방식

서블릿을 필터로 사용하면 고객 요청을 처리할 수 있습니다. 처리가 완료된 후 처리를 위해 다음 필터로 넘겨지므로 해당 요청이 대상으로 전송될 때까지 필터링 체인에서 고객의 요청이 하나씩 처리됩니다. 예를 들어, 웹사이트에 "수정된 등록 정보"를 제출하는 웹페이지가 있습니다. 사용자가 수정된 정보를 입력하고 제출한 후 서버는 처리 중에 두 가지 작업을 수행해야 합니다. 클라이언트의 세션이 유효한지 확인하고, 제출된 데이터를 코딩으로 통합합니다. 두 작업 모두 두 개의 필터로 구성된 필터 체인에서 처리될 수 있습니다. 필터 처리가 성공하면 제출된 데이터가 최종 대상으로 전송됩니다. 필터 처리가 실패하면 보기가 지정된 오류 페이지로 전달됩니다.

Filter lifecycle

public void init(FilterConfig filterConfig) throws ServletException;//初始化

우리가 작성한 Servlet 프로그램과 마찬가지로 Filter의 생성과 소멸은 WEB 서버의 책임입니다. 웹 애플리케이션이 시작되면 웹 서버는 Filter의 인스턴스 객체를 생성하고 init 메소드를 호출하고 web.xml 구성을 읽고 객체의 초기화 기능을 완료하여 후속 사용자 요청(필터 객체)을 차단할 준비를 합니다. 한 번만 생성되고 init 메서드는 한 번만 실행됩니다. 개발자는 init 메소드의 매개변수를 통해 현재 필터 구성 정보를 나타내는 FilterConfig 객체를 얻을 수 있습니다.

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException;//拦截请求

이 방법으로 실제 필터링 작업이 완료됩니다. 클라이언트가 필터와 연관된 URL에 대한 액세스를 요청하면 서블릿 필터는 먼저 doFilter 메소드를 실행합니다. FilterChain 매개변수는 후속 필터에 액세스하는 데 사용됩니다.

public void destroy();//销毁

필터 개체는 생성 후 메모리에 상주하며 웹 애플리케이션이 제거되거나 서버가 중지되면 폐기됩니다. 웹 컨테이너가 필터 개체를 언로드하기 전에 호출됩니다. 이 메서드는 필터의 수명 주기 동안 한 번만 실행됩니다. 이 방법을 사용하면 필터에서 사용하는 리소스를 해제할 수 있습니다.

추천 튜토리얼: "java 튜토리얼"

위 내용은 필터란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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