728x90

Filter 2

response.sendRedirect 에 대한 오해

특정페이지로 리다이렉트 시키고 싶은 경우 response.sendRedirect() 메소드를 사용하곤 한다. 그런데 너무 예전에 생각없이 쓰던거라 이제라도 잘못된 지식을 바로 잡고자 한다. 나는 이 메소드를 사용할 경우 암시적으로 프로그램의 흐름이 종료되는 것으로 알고 있었다. 즉, return 과 같은 역할이 기본적으로 포함되어 있다고 착각하고 있었다. 결론부터 말하면 전혀 그렇지 않다. 지금까지 이렇게 착각하고 있어도 아무 문제가 없고 더 찾아보지 않았던 이유가 response.sendRedirect() 를 항상 마지막에 처리했기 때문인데 response.sendRedirect() 메소드는 response 헤더에 어느 페이지로 리다이렉트 하라는 정보를 넣는 것 뿐 실제로 프로그램의 흐름을 종료하진 않..

Filter, Interceptor, AOP

Filter, Interceptor, AOP 모두 어떠한 행동을 하기 전/후에 처리될 공통프로세스를 별도로 정의해 놓은 것들이다. ​ 가장 큰 차이는 적용시점으로 Spring 환경을 기준으로 보면 DispatcherServlet 진입전 Filter 가 적용되고, DispatcherServlet 진입후 Controller 메소드 진입 전에 Interceptor 가 적용되고 이어서 AOP가 적용된다. 그렇기 때문에 Interceptor, AOP에서는 Spring Bean을 참조할 수 있지만 Filter에서는 참조할 수 없다. ​ 일반적으로 Filter는 Request, Response 자원 자체를 변경하는 용도로 한글처리를 위한 인코딩이나 XSS 공격 방어를 위한 HTML 태그 치환에 사용된다. ​ Inte..

Backend/Spring+Boot 2021.03.16
728x90