주니어 개발자가 되는 중입니다...loading....

19. Spring : 인터셉터 활용하기 logincheck Interceptor 본문

Spring 스프링

19. Spring : 인터셉터 활용하기 logincheck Interceptor

휼양 2023. 1. 9. 12:45

1. com.yr.spring.common.interceptor > LoginCheckInterceptor class 만들기

public class LoginCheckInterceptor extends HandlerInterceptorAdapter{
	
	//로그인 여부를 체크하는 인터셉터
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
	//req,res를 사용하기 위해서 ↓
	throws Exception {
		HttpSession session = (HttpSession)request.getSession();
		Member logInMember=(Member)session.getAttribute("loginMember");
		if(logInMember==null) {
			request.setAttribute("msg", "로그인 후 이용할 수 있는 서비스 입니다");
			request.setAttribute("loc", "/");
			request.getRequestDispatcher("/WEB-INF/views/common/msg.jsp").forward(request, response);
			return false;
		}
		return true;
	}
}

 

2. servlet-context.xml 

<interceptors>
	<interceptor>
			<!-- 주소패턴으로 설정하는 값 filter, servlet url-pattern 선언한 것과 동일하게 작성 -->
			<mapping path="/demo/*"/> <!-- demo를 지나가는 모든 주소는 interceptor 하도록 설정 -->
			<!-- 특정매핑주소에 대해 예외처리를 할 수 있다 -->
			<exclude-mapping path="/demo/demo.do"/>
			<beans:bean class="com.yr.spring.common.interceptor.LoggerInterceptor"/>
	</interceptor>
		
		<!-- 인터셉터 추가했으니 등록해주기 -->
	<interceptor>
			<mapping path="/demo/demolist.do"/>
			<beans:ref bean="logincheck"/>
	</interceptor>
		
</interceptors>
	
<!-- beans:ref로 등록해야하니 이렇게 bean을 등록해서 넣어주기 -->
<beans:bean id="logincheck" class="com.yr.spring.common.interceptor.LoginCheckInterceptor"/>

 

Comments