예전에 학원에서 배웠던 내용들 다시 정리 (by 인프런 강의)
리다이렉트(redirect):
컨트롤러에서 String을 리턴할 때 view를 리턴하는 것이 아닌, redirect:/로 리턴하면 / 경로로 넘어감 (다시 컨트롤러를 탄다)
return "redirect:/";
ModelAndView를 리턴한다면,
mav.setViewName("redirect:/");
인터셉터(interceptor)
- 경로를 훔치는 의미. 리다이렉트를 사용해야하는 경우가 많은 경우 활용도 가능하다.
예를들어, 로그인이 안되면 이동할 수 없는 페이지들이 있는데, 이 페이지들을 가기전에 인터셉트를 먼저 타고 로그인여부 확인 후에 컨트롤러를 가게 할 수 있다.
전체 flow (참고: 인프런 강의):
여기에서 preHandle()이 가장 많이 쓰인다. 컨트롤러가 작동하기 전이기 때문.
사용방법:
1) 인터셉터를 구현할 Class를 하나 생성하고, HandlerInterceptorAdapter(스프링에서 제공)를 상속받는다.
예시)
public class MemberLoginInterceptor extends HandlerInterceptorAdapter
2) servlet-context.xml에서 인터셉트 할 것이라고 설정해준다.
방법1은 인터셉터할 경로를 지정해주는 거고, 방법2는 인터셉터를 제외할 경로를 지정해주는 방법이다.
어떤 Class가 인터셉터인지 beans로 지정해줘야한다.
'배운 내용 정리 > SPRING' 카테고리의 다른 글
root-context에 properties 파일을 등록 및 암호화 (0) | 2021.07.31 |
---|---|
xml에 compoment 한번에 등록하기 (0) | 2021.07.31 |
@ModelAttribute (0) | 2020.06.10 |
properties 파일값 불러와서 활용하기 (0) | 2020.06.04 |
Mapper.xml에서 <, > 기호 사용하기 (CDATA 활용) (0) | 2020.05.22 |