* Interceptor
해당 Controller가 실행되기전, 실행된 후에 낚아 채서 실행할 내용 작성가능
ex) 해당 요청을 할 수 있는 회원이 맞는지 " 로그인 여부 판단 "
해당 요청을 할 수 있는 권한의 회원이 맞는지 "권한체크"
- preHandle(전처리) : DispatcherServlet이 Controller를 호출하기 전에 낚아 채는 영역
- postHandel(후처리): Controller에서 요청 처리 후 DispatcherServlet으로 뷰 정보가 리턴되는 순간 낚아채는 영역
>> 로그인전에는 마이페이지/글쓰기 하지 못하도록 설정
1. HandlerInterceptor implements하는 클래스 만들기
public class LoginInterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
//true 리턴시 => 기존 요청 흐름대로 해당 Controller 제대로 실행
//false리턴시 => Controller실행되지 않음
HttpSession session = request.getSession();
//현재 요청을 보낸 사람이 로그인이 되어있을경우 => 정상적으로 Controller실행
//로그인이 되어있지 않을 경우 => Controller실행 안됨
if(session.getAttribute("loginUser") != null) {
return true;
}else {
session.setAttribute("alertMsg", "로그인 후 이용가능한 서비스 입니다.");
response.sendRedirect(request.getContextPath());
return false;
}
}
2. Servlet- context.xml파일에 bean등록
<interceptors>
<interceptor>
<mapping path="/myPage.me" />
<mapping path="/enrollForm.bo" />
<beans:bean class="com.br.spring.common.interceptor.LoginInterceptor" id="loninInterceptor" />
</interceptor>
</interceptors>
'Framework > Spring' 카테고리의 다른 글
02. Maven , Spring Framework (0) | 2023.02.20 |
---|---|
01. Spring 개발환경 구축 (0) | 2023.02.20 |