본문 바로가기

카테고리 없음

[Spring] 쿠키 / 세션 ( cookie / session ), 세션을 활용한 로그인 구현

 

 

 

 

 

쿠키 / 세션

 

프로젝트 신규 생성 ( Spring Legacy Project )

 

버전 설정

 

프로젝트 우 클릭 후 메이븐 > 업데이트 프로젝트 클릭

 

인코딩 방식 설정 web.xml 에 코드 추가

 


기존 url > /ex01 경로와 충돌 해결

서버 실행 시 기존에 사용하던 ex01 경로와 충돌 때문에 에러 발생 >> 기존 사용 ex01 경로 주석 처리 >> 서버 재실행 >> 서버 구동 완료

 


 

쿠키 발급, 조회, 삭제

 

CookieController 클래스 파일 생성 >> cookie 경로로 이동되면 출력될 jsp 파일 생성 >> 접속 후 쿠키 존재 여부 확인

기본 발급 쿠키를 제외하곤 쿠키가 존재하지 않음

 

쿠키를 생성하여 발급 >> 확인 ( 5초 뒤 쿠키가 삭제되는 것 확인 )

 

req 를 통해 쿠키 값을 확인

 

특정 쿠키의 값만 확인할때

@CookieValue 어노테이션 사용

@CookieValue 어노테이션을 사용해서 확인 >> required = false 를 사용하여 쿠키 값이 존재하지 않는다면 null 로 처리하겠다고 선언 >> cook 을 출력하면 객체 값 출력, getName(), getValue() 메소드 사용하여 이름과 값을 가져와서 사용

 

쿠키 값 확인을 위해 경로 추가 >> cookie02.jsp 추가 ( 팝업 띄울 것임 )

 

팝업창 경로 추가 >> 팝업 내용 작성

 

하루동안 열지 않음 클릭 시 cookieChk 경로로 이동 >> Controller 에 하루동안 열지 않음 클릭 시 쿠키를 발급할 경로를 추가 및 쿠키 발급

 

 

 

 

 

쿠키가 존재하지 않으면 팝업창을 띄우게 설정 1

( 백엔드, 프론트엔드가 나눠져 있는 경우 사용 불가, 사용하는 문법이 jsp 문법이므로 )

쿠키 값이 존재하지 않으면 팝업창 출력되게 설정

 

 

 

 

 

쿠키가 존재하지 않으면 팝업창을 띄우게 설정 2

( 자바스크립트 문법을 사용 )

쿠키 값이 존재하지 않으면 팝업창 출력되지 않게 설정

 

 

 

 

 


 

 

 

 

 

세션 발급, 조회, 삭제

 

파일 세팅

 

makeSession 경로로 들어오면 세션을 발급 >> makeSession.jsp 에서 세션 값 확인 >> 웹에서 확인

 

resultSession 경로 Controller 에 추가 >> resultSession.jsp 파일 작성

 

만약 Attribute 로 세션과 동일한 이름의 값이 존재한다면 단순 출력 시 생존 범위가 좁은 Attribute ( request 와 생존 범위가 동일 > 현재 페이지에서만 생존 ) 가 출력되므로 sessionScope.[세션이름] 으로 세션을 확인 및 사용한다

 

delSession.jsp 작성 >> Controller 에서 세션을 삭제하는 방법 두가지 사용 ( HttpServletRequest, HttpSession 두 가지 사용 )

 

세션 발급, 조회, 삭제 완료

 


 

 

 

 

 

로그인 구현

 

jsp 파일 세 개 ( login, logout, main ) 세팅

 

login 경로 추가 >> login.jsp 작성 >> 확인

 

아이디 비밀번호 입력 후 로그인 시 이동될 check 경로 Controller 에 설정 >> main.jsp 작성 >> 확인

 

로그아웃 시 세션 삭제 Controller 에 구현 >> logout.jsp 작성 >> 확인

 

로그인 사용자는 로그인 페이지 접속 시 세션정보 출력 및 로그아웃 할 수 있게 세팅

 

로그인 하지 않고 logout 으로 접속 시도 할 시 session 으로 로그인 상태 확인하여 login 페이지로 redirect

728x90