세션은 쿠키와 마찬가지로 서버가 클라이언트의 정보를 관리하기 위한 방법이다. 쿠키와 다른 점은 쿠키는 개인 정보를 텍스트 형태의 데이터로 클라이언트의 컴퓨터에 저장시키는 반면, 세션은 서버에서 세션ID와 해당하는 정보를 가지고 있고, 클라이언트에게는 세션ID만 전달하여 세션ID를 사용해 클라이언트를 구분하는 방법을 사용한다.
■ 세션 사용 방법
session.setAttribute("id", value);
%>
■ 사용자 세션ID를 통해 값 가져오기
String id = (String)session.getAttribute("id");
■ 세션 제거 하기
session.invalidate();
■ 세션 클래스 메소드
- void setAttribute(String str, Object obj) : 현재 세션에 새로운 이름의 속성을 만들고 그 속성에 값을 할당
- Object getAttribute(String name) :세션 속성 값 중 name에 해당하는 값을 Object 객체로 반환
- Enumeration getAttributeName() : 세션 객체에 값을 저장하고 있는 각각의 속성의 이름 모두를 배열로 반환
- String getID() : 클라이언트에 할당된 세션ID 값을 최근 접속시간으로 반환함
- long getCreationTime() : 세션에 형성될 때의 시간을 1970년 1월 1일 자정을 기준으로 밀리세컨드 초단뒤로 반환
- long getLastAccessedTime() : 클라이언트가 마지막으로 서버에 보낸 요청(Request) 시간을 표준시의 기준으로 반환
- int getMaxInactiveInterval() : 세션 종료 시간을 정수형으로 반환
- void invalidate() : 현재 실행 중인 세션을 종료시킴
- boolean isNew() : 현재 실행 중인 세션이 새로운 것인지의 여부를 논리값으로 반환
- void removeAttribute(String id) : 현재 세션에 저장되어 있는 속성 값들 중 지정한 속성의 값을 지움
- void setMaxInactiveInterval() : 세션을 할당 받고 아무런 요청이 없을 때부터 세션을 유지하는 기간을 지정함
※ 세션 사용시 주의점
세션을 사용할 때 여러개의 세션을 사용하는 것 보다는 세션 클래스를 작성하여 관리하는게 좋습니다. 이유는 예외를 추적하는 것 보다 컴파일 에러를 처리하는 것이 상대적으로 수월하게 처리할 수 있기 때문에 개발자가 코드를 보다 쉽게 유지 보수할 수 있습니다.
세션을 사용하여 클라이언트를 구분할 때 아이디와 비밀번호를 세션으로 지정하여 구분한다고 가정한다면
session.setAttribute("id", '홍길동');
session.setAttribtute("password", "1234");
위와 같이 세션을 일일히 부여하는 방법 보다는 세센 객체를 작성하여 따로 관리하는 것이 세션 관리에 효율적입니다.
public class SessionClass {
private String id;
private String password;
getting & setting
}
SessionClass sessionClass = new SessionClass();
sessionClass.setId("홍길동");
sessionClass.setPassword("1234");
session.setAttribute("sessionClass", sessionClass);
■ 세션의 유지 시간 설정하기
세션의 유지 시간을 설정하는 방법은 web.xml 파일에 설정을 지정하는 방법과 Session 객체의 setMaxInactiveInterval() 메소드를 사용하는 방법 두 가지가 있습니다.
1. web.xml 파일 설정
<session-config>
<session-timeout>50</session-timeout> <!-- 세션 유지 시간을 50분으로 적용 -->
</session-config>
2. session 객체의 setMaxInactiveInterval() 메소드로 지정하기
'자바(Java) > JAVA 2EE' 카테고리의 다른 글
페이지 사이에 파라미터 유효범위 (0) | 2009.10.10 |
---|---|
텍스트 날짜를 Timestamp 형태로 변환시키기 (0) | 2009.10.09 |
JSP에서 쿠키(cookie) 사용 방법 (0) | 2009.10.09 |
사용자 정보를 유지하기 위한 쿠키와 세션 (0) | 2009.10.09 |
웹 어플리케이션의 시스템 경로및 루트 경로 지정하는 방법 (0) | 2009.09.24 |