목차
접기
728x90
반응형
interceptor란?
- 특정 URI로 요청시 Controller로 가는 요청을 가로채는 역할을 한다.
interceptor와 JSP Filter의 차이?
공통점
- 둘 다 Controller로 들어가는 요청을 가로채 특정 작업을 하기 위한 용도로 사용된다.
차이점
- 케어할 수 있는 영역(범위)가 다르다.
Filter는 같은 웹 어플리케이션 내에서만 접근이 가능하며,
interceptor의 경우 스프링에서 관리되기 때문에 스프링내의 모든 객체에 접근이 접근이 가능하다. - JSP Filter의 경우 주로 한글처리에 이용되고
- interceptor의 경우
로그인 처리
에 이용이 된다.
interceptor는 왜 로그인 처리에 이용되는가?
- 만약 인터셉터를 이용하지 않고, 로그인 처리를 한다면,
게시물 작성, 수정, 삭제 등 모든 요청마다 Controller에서 session을 통해
로그인 정보가 남아 있는지를 확인하는 코드를 중복해서 입력해야 할 것이다. - 하지만, 인터셉터를 이용한다면 A,B,C 작업을 할 경우에는
interceptor를 먼저 수행해 session에서 로그인 정보가 있는지 확인해 주는
역할을 한다면, 중복 코드가 확 줄어들 수 있을 것이다.
interceptor를 지원하는 interface와 class, method
Spring에서 interceptor를 지원하기 위해서
- HandlerInterceptor interface
- HandlerInterceptorAdapter 추상 클래스를 지원한다.
- 이친구는 위의 interface를 사용하기 쉽게 구현해 놓은 추상클래스.
- 이때, HandlerInterceptorAdaptor는 3가지 메서드를 제공한다. 이 3가지 메서드를 오버라이딩해서 우리가 이용할 수 있다.
```
- public boolean preHandle(HttpServletRequest request, HttpServletResponse, Object Handler)
- Controller로 요청이 들어가기 전!에 수행된다.
- request, response, handle 등의 매개변수를 이용가능한데 우리가 아는
HttpServletRequest, HttpServletResponse이고, 나머지 하나는
이 preHandle() 메서드를 수행하고 수행될 컨트롤러 메서드에 대한 정보를 담고 있는
handle이다.
- request, response, handle 등의 매개변수를 이용가능한데 우리가 아는
- postHandle(HttpServletRequest, HttpServletResponse reponse, Object handler, ModelAndView modelAndView)
- Controller의 메서드의 처리가 끝나 return되고 화면을 띄워주는 처리가 되기 직전에 이 메서드가
수행된다. - ModelAndView 객체에 Controller에서 전달해 온 Model 객체가 전달됨으로 Controller에서 작업 후
postHandle()에서 작업할 것이 있다면 ModelAndView를 이용하면 된다. - afterCompletion()
- Controller가 수행되고 화면처리까지 끝난 뒤 호출된다.
```
728x90
반응형
LIST
'IT 유용한 정보' 카테고리의 다른 글
자바에서 XSS 대응 방법 ( naver/lucy xss filter 라이브러리 사용법) (0) | 2020.12.25 |
---|---|
XSS와 Injection이란?? (0) | 2020.12.25 |
listener란? (0) | 2020.12.23 |
bean이란? (0) | 2020.12.23 |
[ java, AOP ] AOP(Aspect Oriented Programing) (0) | 2020.12.23 |