2 min Reading
Add Comment
Session
Cookie에서도 그렇듯 상태유지를 위한 특별한 기법이다. 상태유지는 다른페이지로 이동하더라도 그전 페이지의 정보가 유지되어야 하는것을 말한다.
Cookie는 Client의 하드웨어를 이용하여 정보를 저장하였다가 사용함으로서 페이지가 이동하더라도 상태가 유지되는 기술이다. 단, PC방처럼 여러사람이 PC를 공유하는 경우 정보가 유출될 수 있는 단점과 저장할 수 있는 데이터도 1.2MB로 한계가 있다.
이러한 단점을 극복하기 위해 Session을 사용한다.
1) Session
- Session은 Web Browser당 하나씩만 발급된다.
- 쿠키와 달리 웹브라우저에 정보를 보관하는 것이 아니라, 웹 컨테이너에 정보를 보관할 때 사용한다.
- 웹 브라우저의 여러 요청을 처리하는 JSP페이지 사이에서 공유되므로 1:1 매핑되는 값을 저장할 때 사용한다.
- API <-- 클릭
2) 세션 생성
- <@ page session = "true" %>
- session.setAttribute("세션이름", "값");
- page 디렉티브이 session 속성의 기본값은 true이므로 false로 지정하지 않으면 자동생성된다.
Session객체가 제공하는 메소드
1)
리턴값 java.lang.Object
메소드 getAttribute(java.lang.String name) :
세션에 바인딩된 객체중 name에 해당되는 객체 값을 가져온다.없을겨우에는 null을 반환
반환값은 Object형 이므로 반드시 형변환을 하여 사용한다.
2)
리턴값 java.util.Enumeration
메소드 getAttributeNames() :
세션에 바인딩된 모든 객체들의 이름을 Enumeration형으로 되돌려 준다.
서블릿 2.1과 이전 API들의 getValueNames메소드 대신 이것을 사용한다.
3)
리턴값 long
메소드 getCreationTime() :
세션이 만들어진 시간을 반환한다. 반환값은 long형이며 이값은 GMT 시간으로 1970.1.1
자정을 기준으로 단위의 값을 반환한다.
4)
리턴값 java.lang.String
메소드 getId() :
해당 세션을 가리키는 고유 id값을 String 형으로 변환한다.
5)
리턴값 long
메소드 getLastAccessedTime() :
해당 세션이 client가 마지막으로 request를 보낸 시간을 long형으로 반환한다.
반환값은 long형이며 이값은 GMT시간으로 1970.1.1 자정을 기준으로 한 밀리second
단위의 값을 되돌려 준다.
6)
리턴값 int
메소드 getMaxInactiveInterval() :
사용자가 다음 요청을 보낼때까지 세션을 유지하는 최대시간(초 단위)을 반환한다.
7)
리턴값 boolean
메소드 isNew() :
해당 세션이 처음 생성되었으면 true값을 반환하고 이전에 생성이 된 세션이라면 false
를 반환한다.
8)
리턴값 void
메소드 removeAttribute(java.lang.Strng name) :
지정된 이름에 해당하는 객체를 이 세션에서 제거한다. 서블릿 2.1과 이전 API들의
removeValue 메소드 대신 이것을 사용한다.
9)
리턴값 void
메소드 setAttribute(java.lang.String name,java.lang.Object value) :
지정된 이름을 사용하여 이 세션에 객체를 바인딩 시킨다.이전의 putValue메소드 대신 이것
을 사용해야 한다.
10)
리턴값 void
메소드 setMaxInactiveInterval(int interval) :
사용자가 다음 요청을 보낼때 까지 세션을 유지하는 최대시간(초단위)을 설정한다.
이 시간을 넘기면 서블릿 엔진은 세션을 종료한다.
11)
리턴값 void
메소드 Invalidate() :
해당 세션을 없애고 세션에 속해있는 값들을 없앤다.
1)
리턴값 java.lang.Object
메소드 getAttribute(java.lang.String name) :
세션에 바인딩된 객체중 name에 해당되는 객체 값을 가져온다.없을겨우에는 null을 반환
반환값은 Object형 이므로 반드시 형변환을 하여 사용한다.
2)
리턴값 java.util.Enumeration
메소드 getAttributeNames() :
세션에 바인딩된 모든 객체들의 이름을 Enumeration형으로 되돌려 준다.
서블릿 2.1과 이전 API들의 getValueNames메소드 대신 이것을 사용한다.
3)
리턴값 long
메소드 getCreationTime() :
세션이 만들어진 시간을 반환한다. 반환값은 long형이며 이값은 GMT 시간으로 1970.1.1
자정을 기준으로 단위의 값을 반환한다.
4)
리턴값 java.lang.String
메소드 getId() :
해당 세션을 가리키는 고유 id값을 String 형으로 변환한다.
5)
리턴값 long
메소드 getLastAccessedTime() :
해당 세션이 client가 마지막으로 request를 보낸 시간을 long형으로 반환한다.
반환값은 long형이며 이값은 GMT시간으로 1970.1.1 자정을 기준으로 한 밀리second
단위의 값을 되돌려 준다.
6)
리턴값 int
메소드 getMaxInactiveInterval() :
사용자가 다음 요청을 보낼때까지 세션을 유지하는 최대시간(초 단위)을 반환한다.
7)
리턴값 boolean
메소드 isNew() :
해당 세션이 처음 생성되었으면 true값을 반환하고 이전에 생성이 된 세션이라면 false
를 반환한다.
8)
리턴값 void
메소드 removeAttribute(java.lang.Strng name) :
지정된 이름에 해당하는 객체를 이 세션에서 제거한다. 서블릿 2.1과 이전 API들의
removeValue 메소드 대신 이것을 사용한다.
9)
리턴값 void
메소드 setAttribute(java.lang.String name,java.lang.Object value) :
지정된 이름을 사용하여 이 세션에 객체를 바인딩 시킨다.이전의 putValue메소드 대신 이것
을 사용해야 한다.
10)
리턴값 void
메소드 setMaxInactiveInterval(int interval) :
사용자가 다음 요청을 보낼때 까지 세션을 유지하는 최대시간(초단위)을 설정한다.
이 시간을 넘기면 서블릿 엔진은 세션을 종료한다.
11)
리턴값 void
메소드 Invalidate() :
해당 세션을 없애고 세션에 속해있는 값들을 없앤다.
자료출처 : http://freeair-textcube.blogspot.kr
0 개의 댓글:
댓글 쓰기