Filter
공통적인 요청 전처리와 응답 후처리에 사용한다. 로깅, 인코딩 등
package com.fastcampus.app;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
// 필터를 적용할 요청의 패턴 지정 - 모든 요청에 필터를 적용.
@WebFilter(urlPatterns="/*")
public class PerformanceFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// 초기화 작업
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// 1. 전처리 작업
long startTime = System.currentTimeMillis();
// 2. 서블릿 또는 다음 필터를 호출
chain.doFilter(request, response);
// 3. 후처리 작업
System.out.print("["+((HttpServletRequest)request).getRequestURI()+"]");
System.out.println(" 소요시간="+(System.currentTimeMillis()-startTime)+"ms");
}
@Override
public void destroy() {
// 정리 작업
}
}
[/app/] 소요시간=54ms
[/app/el.jsp] 소요시간=280ms
'Spring > Ch2. Spring MVC' 카테고리의 다른 글
Spring MVC - @ModelAttribute (0) | 2022.09.17 |
---|---|
Spring MVC - @RequestParam (0) | 2022.09.17 |
Spring MVC - JSTL(JSP Standard Tag Library) (0) | 2022.09.17 |
Spring MVC - EL(Expression Language) (0) | 2022.09.17 |
Spring MVC - 유효 범위(scope)와 속성(attribute) (0) | 2022.09.17 |