Filter는 "필터"를 의미합니다. 리소스 파일에 액세스하기 전에 요청을 수정하고 일련의 필터를 통해 판단하여 규칙을 준수하지 않는 요청을 제거합니다. 요청은 중간에 가로채거나 수정됩니다. 응답도 필터링, 가로채기 또는 수정할 수 있습니다.
필터는 이름에서 알 수 있듯이 데이터를 필터링하고 전처리하는 프로세스입니다. 필터를 도입하는 이유는 무엇입니까? 웹사이트 방문 시 일부 민감한 정보가 전송되는 경우가 있는데, 민감한 정보가 표시될 때 해당 정보를 처리하기 위해 * 등의 문자로 대체됩니다.
추천 과정: Java 튜토리얼.
물론, 필터는 매우 강력하며 그 기능은 데이터를 전처리할 수 있을 뿐만 아니라 동시에 전송된 모든 요청을 전처리할 수도 있습니다. 서버에서 반환된 응답을 전처리하여 서버에 가해지는 부담을 크게 줄입니다. 예를 들어, URL 수준의 권한 접근 제어, 민감한 단어 필터링, 응답 정보 압축 등 일부 고급 기능을 구현합니다. 필터에 대해 자세히 살펴보겠습니다.
필터 기술은 서블릿 2.3에 새로 추가된 기능입니다. Servlet2.3은 2000년 10월 Sun에서 출시되었습니다. Servlet2.3의 개발자에는 Sun이 옹호하는 코드 개방성 원칙을 완전히 반영하는 많은 개인 및 기업 그룹이 포함되어 있습니다. 많은 참가자들의 공동 노력으로 servlet2.3은 이전보다 훨씬 강력해졌으며 성능도 크게 향상되었습니다.
1. 개념
클라이언트에서 서버로 보낸 요청을 필터링하고, 서버에서 반환된 응답을 처리하는 기능입니다. 이를 통해 사용자는 요청을 변경하고 응답을 수정할 수 있습니다. 필터는 서블릿이 아니므로 응답을 생성할 수 없지만 요청이 서블릿에 도달하기 전에 사전 처리할 수 있으며 응답이 서블릿을 떠날 때 응답을 처리할 수도 있습니다. 즉, 필터는 실제로 클라이언트와 서블릿 사이의 송신기이며 전달될 내용을 수정할 수 있습니다.
참고: 필터는 요청과 응답을 가로채는 데 사용되며 응답을 생성할 수 없는 반면, 서블릿은 요청을 처리하고 응답을 생성하는 데 사용됩니다.
2. 해당되는 경우
URL 수준의 권한 접근 제어 구현, 민감한 단어 필터링, 응답 정보 압축 등
3. 필터는 차단을 어떻게 구현하나요?
클라이언트가 요청하면 HttpServletRequest가 Servlet에 도달하기 전에 필터가 클라이언트의 HttpServletRequest를 차단합니다. 필요에 따라 HttpServletRequest를 확인하고, HttpServletRequest 헤더 및 데이터를 수정할 수도 있습니다. 요청을 해제하려면 필터에서 doFilter 메서드를 호출하세요. 요청이 서블릿에 도달한 후 요청이 처리되고 HttpServletResponse가 생성되어 클라이언트로 전송됩니다. 필터는 클라이언트에 도달하기 전에 HttpServletResponse를 가로챕니다. 필요에 따라 HttpServletResponse를 확인하고 HttpServletResponse 헤더 및 데이터를 수정합니다. 마지막으로 HttpServletResponse가 클라이언트에 도달합니다.
4.Filter 인터페이스
Servlet API는 Filter 인터페이스를 제공하며, 작성된 필터는 이 인터페이스를 구현해야 합니다.
5.Filter lifecycle
(1) Filter 인터페이스에는 세 가지 중요한 메소드가 있습니다.
init() 메소드: 초기화 매개변수, 필터 생성 시 자동으로 호출됩니다. 초기화 매개변수를 설정해야 하는 경우 이 메서드로 작성할 수 있습니다. doFilter() 메소드: 실행하려는 요청이 차단되면 doFilter가 실행됩니다. 여기서는 요청과 응답의 전처리를 작성합니다. destroy() 메소드: 필터를 삭제할 때 자동으로 호출됩니다.
(2) 필터 수명주기
필터의 생성과 소멸은 웹 서버에 의해 제어됩니다.
서버가 시작되면 웹 서버는 Filter의 인스턴스 객체를 생성하고 init 메소드를 호출하여 객체의 초기화 기능을 완료합니다. 필터 개체는 한 번만 생성되고 init 메서드는 한 번만 실행됩니다. 요청이 차단되면 doFilter 메소드가 실행됩니다. 여러 번 실행할 수 있습니다. 서버가 종료되면 웹 서버는 필터 인스턴스 개체를 삭제합니다.
6.Filter 개체 - FilterConfig
필터를 구성할 때 사용자는
String getFilterName(): 필터 이름을 가져옵니다. String getInitParameter(String name): 배포 설명에 지정된 이름을 가진 초기화 매개변수의 값을 반환합니다. 존재하지 않는 경우 null을 반환합니다.Enumeration getInitParameterNames(): 필터의 모든 초기화 매개변수 이름의 열거형 컬렉션을 반환합니다. public ServletContext getServletContext(): 서블릿 컨텍스트 객체에 대한 참조를 반환합니다.
7. 필터 체인 - FilterChain
필터 세트가 특정 웹 리소스를 가로채는데, 이 필터 세트를 필터 체인이라고 합니다. 필터의 실행 순서는
위 내용은 필터는 무슨 뜻인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!