본문 바로가기

📚Study Note/JSP Servlet

[ JSP ] 세션Session 을 활용한 페이지 간 데이터 이동 │ session.setAttribute() │ session.getAttribute()

 

input 태그의 id 속성을 활용하여 이전 페이지로부터 request.getParameter(id); 하는 것은 스코프가 짧아

페이지 간 이동이 잦다면 불편하다. 

따라서 세션을 활용한다면 브라우저가 종료되기 이전까지는 데이터가 유지되어 데이터 이동이 용이해진다. 

 

총 3개의 jsp 파일로 구성되어 있으며, 2는 getParameter 을 통해 1의 데이터를 받고, 3에서는 getAttribute 도 활용하여 1,2 의 데이터를 전달받는다.

 

▧ 페이지 1 코드


 

button 의 onclick 속성에 자바스크립트 함수를 호출하도록 하여 

함수 sendIt() 에서는 이름과 생일 입력 칸에 입력된 내용이 없으면 return, 

정상적으로 값이 입력이 되었다면 form 을 submit 하도록 하였다. 

(여기서 form 의 id 속성으로 getElementById 한 것이 아니라 document.forms[0] 으로

0번째 form 의 정보를 불러왔다는 것이 기존과는 다른 방식이다. )

 

 

▧ 페이지 2 코드


두 번째 페이지도 1번째 페이지와 흡사하지만 앞에서 받은 정보(이름, 생일) 를 받아 다음 페이지로 보내야 하므로

request.getParameter() 로 받아서 session.setAttribute() 로 세션에 값을 저장했다.

 

▧ 페이지 3 코드


세 번째 페이지에서는 그저 데이터를 받기만 하면 되기 때문에 간단하다.

첫 번째 페이지에서 받은 내용을 받기 위해서 session.getAttribute() 했다. 

여기서 유의할 점은 getAttribute 는 결과값으로 Object 타입을 반환하기 때문에

String 타입의 변수에 담기 위해서는 (String)으로 강제 다운캐스팅 해주어야 한다.

 


▧ (추가) 세션 │ 세션아이디와 세션유지시간 확인

기본적으로 30분으로 설정되어 있지만 확인을 위해 10초로 설정했다.

클라이언트가 아무런 동작을 하지 않은 채 10초가 지나면 세션이 만료된다. 

 

 

그 후 다른 페이지에서 session.getId();

session.getMaxInactiveInterval(); 해주면 

값을 확인해볼 수 있다.