컨트롤러에서 뷰를 분기하는 방법과 컨트롤러 실행 전/후에 특정 작업을 가능하게 하는 방법에 대해서 학습한다.
#리다이렉트
(지금의 페이지에서 특정 페이지로 전환하는 기능)
예를들어 클라이언트가 회원정보 수정 요청을하고
회원인증을 거쳐 회원정보 수정 페이지로 유도되야하는데 회원인증이 안되어있다면
메인 페이지(특정 페이지)로 유도하는 기능이다.
#인터셉트
리다이렉트가 빈번하게 발생할 경우 굉장히 번거롭기때문에
아예 컨트롤러가 시작 전후로 인터셉트하여 먼저 검증한다.
DispatcherServlet이후 HandlerInterceptor(인터페이스)가 가로첸다
HandlerInterceptor는 3개의 메소드로 구현될수있고
preHandle(), postHandle(), afterCompletion() 이 있다.
preHandle() 컨트롤러가 작동하기 전단계
postHandle() 컨트롤러 작업후
afterCompletion() 컨트롤러와 뷰가 다 작업한 후에 작업
스프링 설정파일에서 <interceptors> 태그로 관리가 가능하다.
<mapping path="/member/**"/> 이 부분은 member의 하위 경로로 요청되는 모든 부분을
지정할 수 있다.
<exclude-mapping path="/member/joinForm"/> 를 사용하면 제외하고 싶은 경로는 제외가 가능하다.
'공부 > Spring 복습' 카테고리의 다른 글
cookie를 통하여 컬럼명 클릭시 정렬 순서 바꿔보기 (0) | 2021.10.07 |
---|---|
Employees 테이블을 출력해보기(mybatis사용 전, 후) (0) | 2021.10.05 |
세션, 쿠키 (0) | 2021.08.31 |
Controller 객체 구현 2. (0) | 2021.08.31 |
Controller의 여러가지 기능들 (0) | 2021.08.30 |