@ WebFilter 사용
3172 단어 spring
@ WebFilter 는 클래스 를 필터 로 설명 하 는 데 사 용 됩 니 다. 이 주 해 는 배치 할 때 용기 에 의 해 처 리 됩 니 다. 용 기 는 구체 적 인 속성 설정 에 따라 해당 하 는 클래스 를 필터 로 배치 합 니 다.이 주 해 는 다음 표 에서 제시 하 는 일반적인 속성 을 가지 고 있 습 니 다. (아래 의 모든 속성 은 선택 가능 한 속성 이지 만 value, url Patterns, servletNames 세 가 지 는 적어도 하 나 를 포함 해 야 합 니 다. value 와 url Patterns 는 공존 할 수 없습니다. 동시에 지정 하면 value 의 값 을 무시 합 니 다)
표 3. @ WebFilter 의 상용 속성
속성 명
유형
묘사 하 다.
filterName
String
필터 의 name 속성 을 지정 합 니 다.
value
String[]
이 속성 은 url Patterns 속성 과 같 습 니 다.하지만 둘 다 동시에 사용 해 서 는 안 된다.
urlPatterns
String[]
필터 의 URL 일치 모드 를 지정 합 니 다.라벨 에 등가 하 다.
servletNames
String[]
필터 가 어떤 Servlet 에 적 용 될 지 지정 합 니 다.추출 값 은 @ WebServlet 의 name 속성의 추출 값 또는 웹. xml 의 추출 값 입 니 다.
dispatcherTypes
DispatcherType
필터 의 전송 모드 를 지정 합 니 다.구체 적 인 수 치 는 ASYNC, ERROR, FORWARD, INCLUDE, REQUEST 를 포함한다.
initParams
WebInitParam[]
태그 와 같은 필터 초기 화 파 라 메 터 를 지정 합 니 다.
asyncSupported
boolean
필터 가 탭 과 같은 비동기 작업 모드 를 지원 하 는 지 여부 입 니 다.
description
String
이 필터 의 설명 정 보 는 태그 와 같 습 니 다.
displayName
String
이 필터 의 디 스 플레이 이름 은 보통 도구 에 맞 춰 사용 되 며 태그 와 같 습 니 다.
다음은 간단 한 예 이다.
@WebFilter(servletNames = {"SimpleServlet"},filterName="SimpleFilter")
public class LessThanSixFilter implements Filter{...}
이렇게 설정 하면 웹. xml 에 해당 하 는 요 소 를 설정 하지 않 아 도 됩 니 다. 용 기 는 배치 할 때 지정 한 속성 에 따라 이 종 류 를 필터 로 발표 합 니 다.등가 웹 xml 의 설정 형식 은 다음 과 같 습 니 다.
SimpleFilter
xxx
SimpleFilter
SimpleServlet
앞에서 알 수 있 듯 이 @ WebFilter 를 사용 하면 웹. xml 을 설정 한 것 과 같 습 니 다. 현재 eclipse 로 자동 으로 Filter 를 생 성 할 때 기본 값 은 이 주 해 를 제공 합 니 다. 아래 와 같 습 니 다.
package webcase;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
/**
* Servlet Filter implementation class CountFilter
*/
@WebFilter("/CountFilter")
public class CountFilter implements Filter {
private int count;
private String param;
private FilterConfig fConfig;
/**
* Default constructor.
*/
/*public CountFilter() {
// TODO Auto-generated constructor stub
}*/
/**
* @see Filter#destroy()
*/
tomcat 가 순서대로 Filter 를 초기 화 하 는 것 을 알 고 있 습 니 다. 위의 코드 는 @ WebFilter ("/ countFilter") 를 포함 하고 있 기 때문에 웹. xml 에서 같은 필터 CountFilter 를 두 번 설정 한 것 과 같 습 니 다. 따라서 이 필 터 는 두 번 초기 화 되 기 때문에 @ WebFilter 가 설정 한 필터 가 초기 화 될 때 String param = getInitParameter ("count")받 은 문자열 이 비어 있 습 니 다. Integer. parseInt (param) 을 호출 할 때 NumberFormat Exception 이상 이 발생 합 니 다. @ WebFilter ("/ countFilter") 를 제거 하면 모든 것 이 정상 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
thymeleaf로 HTML 페이지를 동적으로 만듭니다 (spring + gradle)지난번에는 에서 화면에 HTML을 표시했습니다. 이번에는 화면을 동적으로 움직여보고 싶기 때문에 입력한 문자를 화면에 표시시키고 싶습니다. 초보자의 비망록이므로 이상한 점 등 있으면 지적 받을 수 있으면 기쁩니다! ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.