Interceptor :
요청 url에 해당하는 controller가 실행되기 전 혹은 후에
처리할 내용을 작성한다
로그인 유/무를 판단, 회원의 권한 체크 등을 처리한다.
preHandle :
DispatcherServlet이 Controller를 호출하기 전 처리하는 영역이다
- 즉 전처리를 한다
* DispatcherServlet :
클라이언트의 요청을 받아서, 등록된 핸들러 매핑에 따라
적절한 컨트롤로로 요청을 전달한다
어플리케이션 컨텍스트: DispatcherServlet은 Spring의 어플리케이션 컨텍스트를 생성하여, 다양한 빈을 관리합니다. 이를 통해 의존성 주입 및 여러 설정을 쉽게 처리할 수 있습니다.
인터셉터 및 필터 적용: 요청 처리 전후에 인터셉터를 적용하거나, 필터를 사용할 수 있습니다. 이를 통해 요청 흐름을 제어하고, 공통 로직을 처리할 수 있습니다.
postHandle :
Controller 처리 후 DispatcherServlet으로 view[화면] 정보를
리턴하는 순간 처리하는 영역이다(후처리)
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
/*
* * true 리턴 : 기존 방식대로 동작 -> 해당 컨트롤러 호출(실행)
* * false 리턴 : 컨트롤러를 실행하지 않음
*/
// 로그인 전에 컨트롤러를 실행하지 않음! 마이페이지, 게시글 작성페이지...
HttpSession session = request.getSession();
if (session.getAttribute("loginUser") != null) {
return true;
} else {
session.setAttribute("alertMsg", "로그인 후 이용가능합니다.");
response.sendRedirect(request.getContextPath()); // 메인페이지로 url 재요청
return false;
}
}
인터셉터 등록 : 해당 코드를 실제로 적용 시키기 위해서는 Spring MVC 설정 파일
servlet-context.xml에 인터셉터를 등록해야 된다.
<interceptors>
<interceptor>
<mapping path="/member/myPage" />
<mapping path="/board/enrollForm" />
<beans:bean class="cohttp://m.kh.spring.common.interceptor.LoginInterceptor" id="loginInterceptor" />
</interceptor>
</interceptors>
'Java' 카테고리의 다른 글
spring aop란? (0) | 2024.10.18 |
---|---|
Servlet Filter (0) | 2024.10.16 |
Java collections (ArrayList, HashSet) + HashMap (0) | 2024.07.15 |
자바 헷갈리는 내용 정리 (1) | 2024.07.15 |
내가 잘 모르는 부분들 내용정리 JAVA (0) | 2024.07.15 |