Servlet 필터 사용
1.Filter 는 다음 과 같은 몇 가지 용도 가 있 습 니 다.
2.Filter 는 다음 과 같은 몇 가지 종류 가 있 습 니 다.
1).Filter 처리 클래스 만 들 기 2).웹.xml 파일 에 Filter 를 설정 합 니 다.
3.1 Filter 처리 클래스 만 들 기
Filter 를 만 들 려 면 javax.servlet.Filter 인 터 페 이 스 를 실현 해 야 합 니 다.이 인터페이스 에서 다음 과 같은 세 가지 방법 을 정의 합 니 다.
다음은 로그 Filter 입 니 다.모든 사용자 의 요청 을 차단 하고 요청 한 정 보 를 로그 에 기록 합 니 다.
@WebFilter(filterName="log", urlPatterns={"/*"}, initParams={ // Filter
@WebInitParam(name="encoding" value="UTF-8"),
@WebInitParam(name="loginPage" value="/login.jsp")
})
public class LogFilter implements Filter {
private FilterConfig config;//FilterConfig Filter
public void init(FilterConfig config) { this.config = config; }
public void destroy(){this.config = null;}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException{
//
ServletContext context = this.config.getServletContext();// ServletContext ,
long before = System.currentTimeMillis();
System.out.println(" ...");
HttpServletRequest request = (HttpServletRequest)req;
System.out.println(" :" + request.getServletPath());
chain.doFilter(req, resp);//Filter ,
//
long after = System.currentTimeMillis();
System.out.println(" ");
System.out.println(" :" + request.getRequestURI() + " :" + (after - before));//
}
}
위의 코드 는 doFilter()방법 을 실 현 했 습 니 다.이 방법 은 사용자 가 요청 한 예비 처 리 를 실현 할 수 있 고 서버 에 대한 응답 후 처 리 를 실현 할 수 있 습 니 다.그들의 경계선 은 chain.doFilter()방법 을 호출 했 는 지 여부 입 니 다.그 전에 사용자 가 요청 한 예비 처 리 였 습 니 다.그 다음 에 서버 에 대한 응답 후 처 리 였 습 니 다.필터 가 필 터 를 요청 한 후에 도 목적 주소 로 요청 을 보 냅 니 다.검사 권한 이 필요 하 다 면 필터 에서 사용자 가 요청 한 HttpSession 에 따라 사용자 권한 이 충분 한 지 판단 할 수 있다.권한 이 부족 하면 바로 방향 을 바 꾸 면 됩 니 다.chain.doFilter()방법 을 호출 할 필요 가 없습니다.
3.2 필터 설정
Filter 의 웹.xml 설정 은 Servlet 의 웹.xml 설정 과 비슷 합 니 다.하나의 Servlet 는 보통 하나의 URL 만 설정 하고 Filter 는 여러 요청 의 URL 을 동시에 차단 할 수 있 기 때문에 Filter 의 url Patterns 를 설정 할 때 패턴 문자열 을 사용 하여 Filter 가 여러 요청 을 차단 할 수 있 도록 합 니 다.Servlet 와 비슷 한 것 은 Filter 를 설정 하 는 데 도 두 가지 방법 이 있 습 니 다.1)Filter 클래스 에서 주 해 를 통 해 설정 합 니 다. 2).웹.xml 파일 에서 설정
@WebFilter 가 지원 하 는 일반적인 속성 소개:
다음은 웹.xml 에 Filter 를 설정 하 는 예 입 니 다.
<filter>
<filter-name>log</filter-name> <!-- @WebFilter filterName -->
<filter-class>com.abc.LogFilter</filter-class> <!-- Filter -->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>loginPage</param-name>
<param-value>/login.jsp</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>log</filter-name>
<url-pattern>/*</url-pattern> <!-- URL, @WebFilter urlPatterns -->
</filter-mapping>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
5분 안에 JSP 배우기Java 생태계는 지난 20년 동안 많이 발전했으며 이는 시장에서 변함없이 인기를 얻고 있음으로 알 수 있습니다. 글쎄, 이것은 다른 프로그래밍 언어 중 하나에 대한 탄탄한 배경이 있거나 새로운 개발자이지만 시간이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.