◆ 페이지 접근 제한
- 각각의 페이지마다 세션을 검사해서 오류 처리
- Spring을 사용한다면 절대 권장하지 않는다.
- AOP(Aspect Orient Programming)
- AOP의 개념을 도입하여 일괄 처리
- 관점 지향 프로그래밍이다.
- 객체 지향 프로그래밍의 발전형 (OOP(Object Orient Programming))
- 직접 구현도 가능 (Spring AOP, AspectJ)
- 만들어진 구현체를 사용하여 처리 (필터, 인터셉터)
- 필터 : java web 기술이다.
- java web으로 만들수 있는 기술 중 한 개가 Spring이다.
- 인터셉터 : Spring 기술이다.
- 접근 제한을 구현하려면 interceptor 사용을 권장한다.
◆ 인터셉터(interceptor)
- 스프링의 실행 과정에 개입하여 변화를 일으킬 수 있는 도구이다.
- 등록만으로 사용할 수 없다.
HandlerInterceptor
상속을 통한 자격 획득 및 스프링에 사용 설정을 해야 한다.
- 다음 메소드를 재정의하여 사용
- preHandle : 컨트롤러가 실행되기 직전 시점에 간섭
- postHandle : 컨트롤러 실행 직후 시점에 간섭(화면은 아직 생성되지 않음)
- afterCompletion
- 인터셉터는 컨트롤러 처럼 선언한다고 주지 않는다.
- HttpSession은 HttpServletRequest 객체 내부에 포함되어 있다.
- DB를 갔다오면 성능이 느려지므로 되도록 DB를 가지 않는것을 권장한다.
- session은 @Controller 에서만 특별히 사용 가능하다.
- 보통은 인터셉터에서 HttpServletRequest가 선언된 파일에서만 session이 사용 가능하다.
◆HttpServletRequest request
- 요청 정보가 담긴 객체
- 사용자가 보낸 정보를 분석할 때 사용
- HttpSession
◆HttpServletResponse response
- 응답 정보가 담긴 객체
- 사용자한테 정보를 보내줘야 할 때 사용
- redirect
◆Object handler
◆ 스프링 설정파일
- 스프링의 초기 설정을 수행할 수 있는 파일
- 등록은
@Configuration
으로 한다
- 나중에 프로젝트가 실행되면
application.properties
와 합쳐져서 설정을 수행
- 프로젝트의 구조를 변경하는 설정이라면 특정 클래스를 상속받아서 자격까지 획득 해야한다.
◆ 인터셉터 등록 메소드
- 매개변수에 있는
registry
를 사용하여 원하는 인터셉터를 원하는 주소에 설정
◆ 주소 패턴 설정
- Spring표현식 사용
*
이 1개면 해당 엔드포인트의 모든 내용을 의미
*
이 2개면 해당 엔드포인트와 그 이하의 모든 내용을 의미