spring mvc request lifecycle
위의 사진은 spring이 컨트롤러 까지 가는데의 과정입니다.
보통 웹 개발을 하다보면 중복으로 처리하는 코드들이 많이 생깁니다. 인증, 인가, 세션, xss 방어 등을 필터, 인터셉터, AOP 등 상황에 맞게 처리합니다.
먼저 필터를 보겠습니다.
http 요청 및 응답을 가로채는데 사용됩니다.
- request를 필터링
- response를 필터링
@Component
public class SampleFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
Filter.super.init(filterConfig);
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
chain.doFilter(request, response);
}
@Override
public void destroy() {
Filter.super.destroy();
}
}
filter는 위의 3개를 오버라이드 할 수 있습니다. 여기서 dofilter는 필수입니다.
- init → 필터를 웹 컨테이너에 생성 후 초기화 할 때 호출
- doFilter → 필터체인으로 연결.
- filterChain은 filter들이 여러개 모여서 하나의 체인을 형성하는 것입니다.
- 그래서 순서를 지정할 수 있습니다.
- 체인의 가장 마지막에는 클라이언트가 요청한 최종 자원이 위치합니다.
- destroy → 웹 컨테이너에서 삭제될 때 호출
'spring boot > spring boot' 카테고리의 다른 글
spring boot에서 커맨드 패턴 (0) | 2023.04.20 |
---|---|
spring boot 에서 argumentResolver (0) | 2021.12.04 |
spring boot 에서 interceptor (0) | 2021.12.04 |
spring의 dispatcher-servlet와 전체적인 흐름 (0) | 2021.10.20 |
spring 기본 개념 - IOC, DI (0) | 2021.10.18 |