강의 컨설팅 트레이닝 무료진단 무료책자 마케팅편지 마케팅정보공유 다이어리 서비스제휴 고객센터

Session 값 얻어 내기
작성자 : 13 김영철
등록날짜 : 2009.01.13 13:00
1,805

클라이언트는 서버에 요청을 할 때마다 자신에게 주어진 세션 ID를 쿠키나 URL을 통해서 제공합니다. 서버에서는 그 세션 ID에 해당하는 세션 객체를 찾아서 거기에 담긴 정보를 가져옵니다. 정보를 저장할 때 사용하는 것이 setAttribute 메서드입니다. setAttribute 메서드는 이름과 값을 쌍으로 받아서 세션 객체에 저장을 하는 역할을 수행합니다. 세션 객체에 저장된 정보를 가져올 때에는 getAttribute 메서드를 사용하면 됩니다.
 
이번 절에서는 getAttribute 메서드와 그외의 객체의 정보를 가져오는 방법을 예제를 통하여 확인해보도록 하겠습니다.
 
sessionRead.jsp
 세션에 저장한 정보를 불러오는 예제
 
<%@page contentType="text/html;charset=euc-kr" session="false"%>
<html><body>
<% 
HttpSession session = request.getSession(false);
String s = (String)session.getAttribute("id");
if(s==null){
  out.print("설정된 세션이 없습니다.<br>");
}else{
out.print("Attribute id 값 : "+s+"<br>");
}
%>
isNew():<%=session.isNew()%><br>
세션ID:<%=session.getId() %><br>
세션생성시간:<%=new java.util.Date(session.getCreationTime()).toString() %><br>
세션마지막접속시간:<%=new java.util.Date(session.getLastAccessedTime()).toString() %>
세션Active시간:<%=session.getMaxInactiveInterval() %>sec<br>
<a href="SessionDelete.jsp">session 삭제하기</a>
</body></html>
 
 
 
결과를 보시면 세션에 대한 여러 정보가 출력되었음을 알 수 있을 것입니다. 소스를 보시면, 먼저 서버로부터 세션객체를 얻어오고 있습니다. getSession 메서드를 호출하면 서버에서는 쿠키나 URL로부터 세션 ID를 뽑아내어서 서버에 저장되어 있는 세션 ID 목록과 비교를 하게되는데 그 결과 일치하는 세션 ID가 있다면 그 세션 ID의 세션 객체를 전달하고 없다면 null 값을 전달해줍니다.
 
        HttpSession session=request.getSession(false);
 
세션 객체로부터 정보를 가져오고 있습니다. getAttribute 메서드는 객체에 저장하였던 정보를 가져올 때 사용하는 메서드로서 매개변수로 가져오고자하는 속성의 이름을 대입하면 그 속성에 해당하는 값을 반환해줍니다. 저장할 때 Object형으로 업캐스팅을 하였으므로 가져올 때에는 원래의 형으로 다운캐스팅을 해주어야만 한다는 점을 잊으시면 안됩니다.
 
        String s=(String)session.getAttribute("id");
 
if문을 사용하여 세션 객체로부터 불러온 값이 null이 아니라면 웹 브라우져에 출력해주고 있습니다.
 
        if(s==null){
          out.print("설정된 세션이 없습니다.<br>");
        }else{
          out.print("Attribute id 값 : "+s+"<br>");
        }
 
세션 객체로부터 세션에 관한 다양한 정보를 얻어내고 있습니다. 각각에 대해 살펴보겠습니다. setMaxInactiveInterval 메서드는 세션을 유지할 시간을 설정하는 메서드입니다. 이 시간이 지나면 세션은 자동으로 종료됩니다. 단위는 second입니다.
 
        <% session.setMaxInactiveInterval(1*60); %>
 
isNew 메서드는 세션이 처음 생성되었을 경우엔 true를, 이미 생성되어 있었을 경우엔 false를 반환합니다. 최초의 요청시에는 true를 반환하지만 세션 유지 시간 내에 재요청시 false를 반환합니다. 세션 유지 시간이 지난 후 요청을 한다면 다시 true를 반환하겠죠.
 
        <%=session.isNew()%>
 
getId 메서드는 이 세션에 할당된 유일한 이름(일종의 id)을 반환해주는 메서드입니다.
 
        <%=session.getId() %>
 
getCreationTime 메서드는 세션이 처음 생성된 시간을 second로 반환해주는 메서드입니다. Date 객체를 사용하여 표준시로 변환하였습니다.
 
        <%=new java.util.Date(session.getCreationTime()).toString() %>
 
getLastAccessedTime 메서드는 세션이 유지되는 동안 마지막에 접속한 시간을 second로 반환해주고 있습니다.
 
        <%=new java.util.Date(session.getLastAccessedTime()).toString() %>
 
getMaxInactiveInterval 메서드는 설정된 세션 유지 시간 값을 불러오는 메서드입니다. 즉 setMaxInactiveInterval 메서드의 값을 불러오는 것이겠지요. 단위는 second입니다.
 
        <%=session.getMaxInactiveInterval() %>
 
세션 객체에 저장한 값을 불러올 때에는 getAttribute 메서드를 사용하는데 반환되는 형이 Object 형이므로 원래의 형을 찾기 위해서는 다운 캐스팅을 해 주어야 한다는 것을 이번 절을 통해 알아 보았습니다. 다음에는 결과에서 “세션 삭제하기” 링크를 누르면 발생하는 세션 종료의 방법에 대해 알아보겠습니다.

[출처] 웹디황용

"쇼핑몰·홈페이지·오픈마켓
블로그·페이스북·이메일 등의 각종 마케팅 글쓰기,
각종 광고, 영업, 판매, 제안서, 전단지
반응율 3배×10배 이상 높이는 마법의 8단계 공식"
자세히보기

Comments

번호 제목 글쓴이 날짜 조회
2685 hitTest로 간단히 만드는 스케일 변화 99 단국강토 02.05 1804
2684 제로보드에 RSS를 지원하기 - zero2rss 13 김영철 01.13 1804
2683 HTML 태그 제거 스크립트 13 김영철 01.13 1804
2682 문자열함수 13 김영철 01.13 1804
2681 자바스크립트 - String 객체, Screen 객체 99 단국강토 02.16 1805
2680 라이브러리 없이 그래프 그리기 13 김영철 01.14 1805
2679 새로고침때 현페이지 유지 13 김영철 01.14 1805
2678 SQL : T-SQL문 : T-SQL(Transact-SQL)문법 13 김영철 01.23 1805
2677 회색바탕에 움푹파인듯한 느낌의 스타일시트 M 최고의하루 12.26 1806
열람중 Session 값 얻어 내기 13 김영철 01.13 1806
2675 몇가지 sql 명령어 13 김영철 01.23 1808
2674 달력 포멧 스크립트 M 최고의하루 12.19 1809
2673 소스 보기방지 우측 마우스 드래그 금지 99 단국강토 01.05 1809
2672 mime_type 알기 13 김영철 01.14 1809
2671 출력버퍼링 예제 13 김영철 01.13 1809
2670 정규표현식의 규칙 13 김영철 01.14 1809
2669 메일 보내기 소스 - fsocketopen 13 김영철 01.13 1809
2668 mime_type 알기 13 김영철 01.14 1809
2667 [펌] 스크롤바 따라 다니는 메뉴 만들기 M 최고의하루 12.26 1810
2666 MSSQL SERVER에서 접속 port 변경하기 99 단국강토 01.06 1810
2665 php에서 유니코드 인코딩하기 13 김영철 01.13 1812
2664 파라미터 정리 13 김영철 01.14 1812
2663 [PHP] PHP5에서의 객체지향프로그래밍 13 김영철 01.13 1813
2662 php 세션css 13 김영철 01.13 1813
2661 한글 및 이미지 정렬 M 최고의하루 12.19 1814
2660 png 13 김영철 01.13 1814
2659 [JS] 자바스크립트 typeof[(expression]] 99 단국강토 02.16 1815
2658 100~200까지 3과 5의 배수의합을 13 김영철 01.13 1816
2657 트랙백 13 김영철 01.13 1816
2656 First Guide to MySQL 13 김영철 01.23 1816
마케팅
특별 마케팅자료
다운로드 마케팅자료
창업,경영
기획,카피,상품전략
동기부여,성취