Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

게으른 완벽주의자의 개발자 도전기

Session Cookie 본문

servlet jsp

Session Cookie

머리방울 2022. 8. 6. 17:24

서버에 저장된 데이터 Session

로그인 한 뒤 페이지를 돌아다니다 보면

"세션이 만료되었습니다." 라는 팝업창을 접해본 적 있을 것이다.

그때 사용하는것이 Session이다. 아이디 비밀번호가 저장된 세션이 

일정 시간이 지나면 자동적으로 데이터들을 소멸시키는 것이다.  

 

클라이언트에 저장된 데이터 Cookie

쿠팡에서 어떤 물건을 살지 이것 저것보다가 인터넷 뉴스를 보다 보면

내가 어제 쿠팡에서 봤던 물건들이 광고 창에 뜨는것을 볼 수 있다.

이를 쿠키라고 한다.

또는 특정 사이트 로그인 유지시키는 것.

 

why?

서버에 여러 데이터를 저장하면 과부하가 걸리기 때문에 클라이언트 서버에도 

데이터를 저장시키려고 하는 것이다.

 

Session데이터

servlet에서 데이터를 다른 페이지로 보낼 때 우리는
request.setAttribute("age", 20); 이런식으로 사용해왔다.

request.setAttribute는 해당 사이트로 데이터를 보낼 순 있지만,  

해당 사이트에서 다른 사이트로 페이지를 이동했을 때 

데이터를 가져갈 수 없다. 즉 일회성이나 다름없다는 뜻이다.

 

우리가 네이버에 로그인을 하면 내가 로그아웃을 하거나

해당사이트를 닫지 않으면 로그인 상태를 유지된다는 것을 알 수 있다.

이때는 Session 객체를 생성 한 후 데이터를 보내기 때문에

일회성이 아닌것을 확인할 수 있다.

 

Session을 이용하여 데이터 보내기


1. 세션 객체 생성

httpSession에 나는 변수명session을 부여 했다. 
httpSession session = request.getSession();

2. 세션에 들어갈 데이터를 등록한다.

session.setAttribute("age", 30);

 

3. 세션 만료 시간

setMaxInactiveInterval() 으로 세션 만료시간을 지정해준다.

괄호안에 내용을 작성하지 않으면 기본 유지시간인 30분으로 지정된다.

 나는 10(분)*60(초)  즉, 10분 유지하겠다고 작성했다.
session.setMaxInactiveInterval(10 * 60);

 

jsp화면으로 보기

위 화면을 구현하기 위해 jsp에서는 아래와 같이 데이터를 불러왔다.

두번째 페이지로 이동

${age }  <- 이 데이터는 request.setAttribute("age", 20); 자료이다.
${sessionScope.age }  <- session에 저장된 자료를 불러온다.

 

각 페이지마다 ${sessionScope.age}을 작성해 주어야 데이터가 이동된다.