history.back(), location.replace()
- 새로고침이 필요할 시 location, 필요없다면 history
history.back()
history.back을 사용했을 때 로딩 되는 페이지에서 해당 url로 인한 진입인지, back으로 돌아온 페이지 인지 감지하여 함수를 동작시킬 수 있다.
history.go(-4) -> 뒤로가기 4번
history.go(-1) == history.back()
location.replace()
현재 페이지에서 새로운 페이지로 덮어 쓰는 것이기 때문에 이전 페이지로 이동이 불가능하다.
스프링 인터셉터(Interceptor)
- 스프링 interceptor란 요청을 가로채서 개발자가 원하는 동작을 추가하는 역할을 한다.
- 인터셉터를 사용하는 이유는 공통 로그 처리, 권한체크에 사용될 수 있다. interceptor를 이용하여 요청을 받아 들이 전, 세션에서 로그인한 사용자가 있는지 확인해보고 없다면 로그인 페이지로 redirect 시킬 수 있다.
preHandler()
Controller가 호출되기 전에 실행되며, 컨트롤러가 실행 이전 처리해야 할 작업이 있는 경우 혹은 요청정보를 가공하거나 추가하는 경우 사용한다.
- return 값은 boolean으로 해당 값이 false이면 컨트롤러 또는 다음 HandlerInterceptor를 실행하지 않는다.
postHandler()
Controller가 호출 된 이후이지만, View가 생성되기 전에 실행되며, ModelAndView 객체를 인자로 받아 Controller에서 View 정보를 전달하기 위해 작업한 Model 객체의 정보를 참조하거나 조작할 수 있다.
- preHandle()에서 리턴값이 false경우 실행되지 않는다.
afterCompletion()
View의 모든 작업이 완료된 후에 실행되며, preHandler()에서 리턴값이 false인 경우 실행되지 않는다.
'팀프로젝트 - TailsRoute' 카테고리의 다른 글
TEAM Project (11.10 ~) - dog_behavior 모델 (0) | 2024.11.19 |
---|---|
Team Project (11.18) - 카카오 소셜 로그인 (1) | 2024.11.18 |
프로젝트 (0) | 2024.11.15 |
TEAM Project (11.04) - 메인 프론트 작업 (스크롤 시 섹션 하나씩 이동) (2) | 2024.11.14 |
TEAM Project (11.06) - 프론트 작업 (스크롤 시 아이콘 변환) (0) | 2024.11.13 |