상세 컨텐츠

본문 제목

스프링 인터셉터 적용하기

spring

by somiyuralove 2019. 1. 8. 10:27

본문

안녕하세요.

이번시간에는 스프링에 인터셉터를 적용하는 방법에 대해서 알아보도록 하겠습니다^^

날씨가 추우니 만사가 귀찮으시죠? ^^*

그래도 열심히 무언가를 탐구하는 것은 의미있는 행위인거 같습니다^^

그럼 시작해볼까요??

​​인터셉터란 특정 URI로 요청시 Controller로 가는 요청을 가로채는 역할을 합니다.

우리 농구할때 상대방의 패스를 인터셉트 한다고 하죠? 그거랑 비슷한 개념이라 보시면됩니다.

스프링에서 인터셉터를 처리하기 위해서는 HandlerInterceptorAdapter 추상 클래스 이용합니다.

HandlerInterceptorAdaptor는 3가지 메서드를 제공한합니다.

이 3가지 메서드를 오버라이딩해서 우리가 사용하면 됩니다.

1) public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)

: Controller로 요청이 들어가기 전!!에 수행됩니다.

: request, response, handler 등의 매개변수를 이용가능한데 우리가 아는 HttpServletRequest, HttpServletResponse, 이고, 나머지 하나는 이 preHandle() 메서드를 수행하고 수행될 컨트롤러 메서드에 대한 정보를 담고 있는 handle입니다.

2) postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView)

: 컨트롤러의 메서드의 처리가 끝나 return 되고 화면을 띄워주는 처리가 되기 직전에 이 메서드가 수행됩니다.

: ModelAndView 객체에 컨트롤러에서 전달해 온 Model 객체가 전달됨으로 컨트롤러에서 작업 후
postHandle() 에서 작업할 것이 있다면 ModelAndView를 이용하면 됩니다.

3) afterCompletion()

컨트롤러가 수행되고 화면처리까지 끝난 뒤 호출됩니다.

마지막으로 sevlet-context.xml에 등록를 해줘야 사용하실 수 있습니다. 가장 중요합니다.

<interceptors>
<interceptor>
<mapping path=“/**/“/>
<beans:bean="LoggerInterceptor" class=com.myoroject.common.LoggerInterceptor/>
</interceptor>
</interceptors>

저는 위와 같이 선언하여 사용하였습니다.

그럼 재미있는 프로그래밍하시고 추우신데 옷따듯이 입고 다니시길 바라겠습니다^^

다음 시간에 뵈요^^*




관련글 더보기

댓글 영역