개발/JSP

[JSP] session의 사용

윤_ve 2021. 3. 24. 22:18

session이란?

 

cookie와 마찬가지로 클라이언트가 서버에 접속하여 생성된 연결을 유지시켜주는 역할을 합니다.

흔히 우리가 어느 홈페이지에 접속하여 로그인을 하고 장시간 사용안한 채 두면

"세션이 만료되었습니다." 라고 알려주면서 자동으로 로그아웃이 되는것을 자주 봤을겁니다.

그게 바로 세션의 역할 입니다. 

 

클라이언트에게 서버와의 유지시간을 제한을 주고

클라이언트가 서버유지를 하겠다고 추가적으로 요청하지

않으면 정해진시간이 흐른뒤 자동으로 접속을 끊어버리는 역할을 합니다.

 

cookie는 아래↓↓↓

2021.03.23 - [개발/JSP] - [JSP] COOKIE 생성, 조회, 삭제

 

[JSP] COOKIE 생성, 조회, 삭제

cookie란? 웹 브라우저가 보관하고 있는 데이터로, 웹 서버에 요청 할 때 쿠키를 헤더에 담아서 전송해준다. 쿠키 하나당 최대 4KB의 크기이고 최대 300개 까지 저장이 가능하다.(총 1.2M) 동작방식 1.

yoon-ve.tistory.com

 


session의 사용

 

세션을 사용하여 예제를 만들어 보겠습니다. 쿠키와 같은 방법으로 만들면 됩니다.

 

우선 로그인 폼을 만들어 줍니다.

 

 

아이디와 비밀번호를 입력하고 전송을 클릭할수 있게 만들었습니다.

 

 

 

 

아이디와 비밀번호를 받아서 String 변수에 저장하고

아이디/비밀번호 = admin/admin1234 일 경우

welcome.jsp로 화면이 넘어가고,

아닐 경우 아이디와 비밀번호를 확인해달라는 오류메세지를 화면에 출력합니다.

 

 

 

admin님 반갑습니다를 화면에 출력하고

아래에 로그아웃을 만들어 클릭하면 세션이 삭제되게 설정 합니다.

 

로그아웃을 누르면 invalidate메서드를 통해 생성되었던 세션을 모두 제거 시켜준 뒤

처음 로그인화면으로 돌아가게 설계합니다.

 

이를 실행 하면

 

아이디와 비밀번호를 입력하고

 

 

 

아이디가 같으면 왼쪽 사진, 틀릴 경우 오른쪽 사진이 나오는 것을 볼 수있습니다.

 

로그아웃을 누르면 세션이 삭제되고 다시 처음의 로그인화면이 출력되게 됩니다.


Session의 메서드

 

세션의 유효시간을 변경해주는 setMaxInactiveInterval함수

 

 

세션의 유효시간은 기본 30분으로 설정 되어있는데 setMaxInactiveInterval 메서드를 사용하면 유효시간을 변경할 수 있습니다.

 

 

getLastAccessedTime() = 가장 최근에 접속한 시간

getCreationTime() = 세션이 생성된 시간

isNew() = 지금 접속이 새로 생성된 세션인지 기존의 세션인지 참 or 거짓

 

위와 같이 코드를 짠 뒤 실행을 해보면

 

위와 같이 출력되는 것을 알수 있습니다.

 

다음은 error에 대해 포스팅 해보겠습니다!