65. 인터셉터
-인터셉터(컨트롤러에서 공통적으로 해야 하는 일을 설정)
*참고 (인터 셉터 란? 특정 URI로 요청시 Controller로 가는 요청을 가로채는 역할을 한다
출처: https://rongscodinghistory.tistory.com/2 [악덕고용주의 개발 일기]
Ex) 1~30 개의 페이지가 있을 때 어느 페이지에서든 로그인하면 해당 페이지로 다시 돌아가야 하는 경우
(5페이지->로그인->5페이지)
*패키지 생성
* InterceptorConfig.java 생성
* 오버라이드 하기(InterceptorConfig.java)
* autowired
package com.example.interceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class InterceptorConfig implements WebMvcConfigurer{
@Autowired
HandlerInterceptor interceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
//전체 페이지는 모두 허용하고
// /api/member/login 또는 /api/member/login/** 은 제외됨
registry.addInterceptor(interceptor)
.addPathPatterns("/**")
.excludePathPatterns("/api/member/login", "/api/member/login/**");
}
}
* MyInerceptor.java 생성
* posthandle 오버라이드
package com.example.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
@Component
public class MyInerceptor implements HandlerInterceptor{
@Override
public void postHandle(
HttpServletRequest request,
HttpServletResponse response,
Object handler,
ModelAndView modelAndView) throws Exception {
String path = request.getServletPath();
System.out.println(path);
}
}
* 인터셉터 패키지 등록(Boot20211005Application.java)
... ...
@ComponentScan(basePackages = { "com.example.controller", "com.example.security", "com.example.jwt",
"com.example.service", "com.example.scheduler", "com.example.interceptor" })
... ...
* 인터셉터 구현
* 크롬이나 포스트맨으로 주소 접속
* login 페이지와 아닌 페이지 접속 시 출력값 확인
'Spring' 카테고리의 다른 글
Spring 일지 #68 (20211005) sql문 삭제, 수정 (0) | 2021.10.08 |
---|---|
Spring 일지 #67 (20211005) sql문 조회 (0) | 2021.10.08 |
Spring 일지 #65 (20211005) 스케쥴링 (0) | 2021.10.08 |
Spring 일지 #64 (exam) 시험 대비9(수정하기) (0) | 2021.10.08 |
Spring 일지 #63 (exam) 시험 대비8(삭제하기) (0) | 2021.10.08 |