반응형
p.149 ~ p.153 인터셉터
interceptor
- dispatcher servlet과 컨트롤러 사이에 존재하여 요청을 가로챈다.
- 모든 페이지 마다 동일한 기능의 제어
- 응답시간을 측정하는 인터페이스를 만들 수 있다.
interceptor가 할 수 있는 일 !!
1. 처리시간 체크
2. 인증 체크
3. 인가 체크
4. 로그인 체크
브라우져 -------> DS -----| interceptor |-----> control
요청
dispatcherServlet.xml -> 원래 default는 applicationContext.xml
실무에서는 web.xml(모델 1)에 쓴다.. 지금은 잘 모르겠음.
src/main/java -> com.ktds.mcjang -> intercept -> Measuringinterceptor.java
|
src/main/java -> com.ktds.mcjang -> intercept -> LoginInterceptor.java
package com.ktds.mcjang.intercept;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class LoginInterceptor extends HandlerInterceptorAdapter {
private static Logger logger = LoggerFactory.getLogger(LoginInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
// 사용자가 어디 페이지에서 왔는지 보여준다.
String refererURL = request.getHeader("referer");
logger.info(refererURL);
HttpSession session = request.getSession();
if(session.getAttribute("_MEMBER_") == null){
//response.sendRedirect(refererURL);
// 세션이 없으면 write 페이지(로그인 페이지로 가정)로 돌아가라.
response.sendRedirect("http://localhost:8080/TestMVC/write");
// return false 꼭 써줘야 되
// return false만 하면 ds에서 컨트롤러로 안가고 다시 ds로 돌아가 아무 화면도 안나옴.
return false;
}
return true;
}
}
|
cs |
src -> main -> webapp -> WEB-INF -> config -> spring -> dispatcherServlet.xml
|
반응형
'IT > Spring' 카테고리의 다른 글
동영상, 자막 컨트롤, 큐브 구현 (0) | 2015.04.27 |
---|---|
(Spring) SLF4J와 Logback을 이용한 로그 남기기[2015.04.07] (0) | 2015.04.07 |
(Spring) bean confin 설정 분리하기[2015.04.07] (0) | 2015.04.07 |
(Spring) 예외처리 [2015.04.07] (0) | 2015.04.07 |
Spring Tool Suite(sts) 설치 및 maven 프로젝트 생성 방법 (0) | 2015.04.07 |