Interceptor

Hyunny ·2023년 8월 18일
0

SPRING

목록 보기
9/14
post-thumbnail

💜📝 Interceptor : 요청/응답을 가로채는 객체

interceptor 이용하여 nav의 게시판종류를 DB에 저장한 데이터 값을 불러와
쉽게 구현&유지보수 하기!

Client <-> Filter <-> Dispatcher Servlet <-> Interceptor <-> Controller
preHandle (전처리)
: Dispatcher Servlet -> Controller 사이
postHandle (후처리) : Controller -> Dispatcher Servlet 사이
afterCompletion(뷰 완성 후) : View Resolver -> Dispatcher Servlet 사이



🌷 preHandle (전처리)

// 전처리 
	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
			throws Exception {
		
		// application scope 내장 객체 얻어오기 
		ServletContext application = request.getServletContext();
		
		// application scope에 BOARD_TYPE이 조회되어 세팅이 되지 않았다면 
		// -> 서버 시작 후 누구도 요청 한적이 없을 경우 
		if(application.getAttribute("boardTypeList") == null) {
			
			// 조회 서비스 호출 
			System.out.println("BOARD_TYPE 조회 서비스 호출");
			
			List<Map<String, Object>> boardTypeList = service.selectBoardTypeList();
			
			System.out.println(boardTypeList);
			
			// application scope에 세팅 
			application.setAttribute("boardTypeList", boardTypeList);
		}
		
		return HandlerInterceptor.super.preHandle(request, response, handler);
	}
    

🌷 postHandle (후처리)

🌷 afterCompletion (뷰 완성 후)

profile
개발 learning ... 📝

0개의 댓글