■ 배운것
- 로그아웃
1. 매개변수 SessionStatus status
2. status.setComplete();
- 아이디 중복검사
1. jsp로 json 타입 데이터 넘겨주기
2. jackson 라이브러리 추가
3. @ResponseBody 붙여서 컨트롤러 작성
- 회원정보 수정 및 탈퇴
1. @SessionAttribute 사용해서 로그인 멤버 매개변수로 가져오기
- 로그인 체크 인터셉터
1. LoginCheckInterceptor extends HandlerInterceptorAdapter
2. 서블릿 컨텍스트에 인터셉터 설정
■ 로그아웃
세션 스코프로 확장된 로그인 멤버 지워주고 홈으로 리다이렉트 시키기
■ 아이디 중복검사
1. 컨트롤러에서 jsp로 JSON 형태로 데이터 넘기기 설정
- jsp에서 중복검사 버튼 누르면 member/idCheck URL로 제이슨 형태의 데이터 넘어가게 해놓음
1) jackson 라이브러리 추가
jackson-databind, json-path
2) @ResponseBody 어노테이션 사용
컨트롤러에서 리턴타입이 String이면 리턴값 일반적으로 뷰 이름이다.
하지만 진짜로 문자 데이터를 전달하고 싶을 때 사용
2. 컨트롤러에 @ResponseBody 붙여서 핸들러 작성, 서비스, 맵퍼 구현
* 서비스에서 맵퍼.아이디 조회하는거 중복되니까
서비스 내부에 메소드 따로 만들어서 호출하도록 한다.
■ 회원정보 수정 및 탈퇴
1. 회원정보 수정
1) myPage.jsp 추가, name속성 파라미터랑 같은지 확인, 제이쿼리 사용하는 스크립트문 추가
home에서 회원정보수정으로 넘어갈 태그 추가
2) 마이페이지 받는 get 핸들러 추가
3) /member/update 핸들러 추가
@SessionAttributes 세션스코프로 변경한 로그인멤버를
@SessionAttribute어노테이션 사용해서 로그인세션에 있는 로그인멤버를 가져올 수 있다.
4) model.addObject("loginMember", service.findMemberById(loginMember.getId()));
정보수정 누르면 디비는 바뀌었지만 기존에 로그인세션에 있는 얘가 보여지때문에
다시 조회해서 넣어주는걸로 코드 추가한다.
* 로그인 후 수정하고 변경된 내용 잘 뜨는지 확인
2. 회원 탈퇴
탈퇴하면 디비에서는 삭제되어도 현제 세션에서는 로그인 정보 유지되어 있어서
model.addObject("location", "/logout"); 로그아웃 시켜서 세션 종료시킴
■ 로그인 체크 인터셉터

- 로그인 체크 인터셉터 : URL로 정보수정 등 들어가면 로그인 안했을 때 접근 못하게
- 인터셉터는 서블릿과 컨트롤러 사이에 있음
- 인코딩필터는 서블릿 밖에 있어서 빈에 접근 못함
인터셉터 빈 접근 가능
- 로그인체크 필터 사용해도 된다.
1) common.interceptor.LoginCheckInterceptor 클래스 만듬
- LoginCheckInterceptor extends HandlerInterceptorAdapter 상속하게 해줌
- alt + shift + s 오버라이드 임플리먼트 method
- 서블릿이 실행되기 전 작업하는 preHandle 메소드 구현

2) 서블릿 컨텍스트에 인터셉터 설정 해줌
- 인터셉터 적용시킬 클래스 및 매핑 URL 설정
댓글