

- DispatcherServlet: 순서를 결정해서 그에 맞게 불러주는 친구, 스케쥴링, http 프로토콜로 들어오는 모든 요청을 가장 먼저 받아 알맞은 컨트롤러에 위임해주는 프론트 컨트롤러
@Configuration //스프링아 나 이 파일 설정파일로 쓸거야
public class CustomWebMvcConfigurer extends WebMvcConfigurationSupport {
@Override
protected void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptor())
.addPathPatterns("/**");
}
}

아이디어2💡 : 주소를 관리하는 친구를 따로 두자!

위 그림과 같이 주소를 관리하는 친구를 따로 두고 요청이 들어오면 주소록 친구에게 주소를 받아서 소통하는 방식을 채택함.
✔️ 필터~인터셉터 어떻게 구동될까?🧐
- 성공적으로 Res 날아올때
- 404처럼 처리할 수 없는 요청이 날아올 때
- 아예 예외가 터져버렸을 때(/error)
디스패처 서블릿이 일 시킬 게 없음 즉, 요청을 받는 컨트롤러가 없음
잘못된 요청

올바른 요청

Data Binding: 잭슨, 역직렬화/직렬화(interceptor), requestBody
validation
Handler exception resolver: exception이 터지면 잡아줌
filter: log 찍기 가능, 헤더관련된 것 처리, 인코딩(헤더값에 존재) 변환 처리, XSS 방어
@serveltComponentScan
chain.doFilter
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
String requestURI = req.getRequestURI();
System.out.println("Filter Request - " + requestURI);
chain.doFilter(request, response); //필터가 이 사이에서 실행될 것
System.out.println("Filter Response - " + requestURI);
}
다음 필터나 마지막 필터로 넘겨주는 것 (나 방금 이 리퀘스트 지나왔거든!)
다음 리스펀스 들고 다음 리퀘스트로 넘겨주는 것
💡OWASP(Open web Application Security project)
⚠️ 웹이 공격을 당하는 방법
1. SQL Injection
2. XSS: 버튼을 누르면 숨겨진 스크립트가 날라감
3. CSRF(Cross Site Request Forgery): 사용자인척 웹 취약점을 공격