만족

[JSP] 세션(Session) 본문

[JSP] 세션(Session)

Backend/JSP Satisfaction 2018. 1. 5. 21:43

Session은 Client와 Server가 관계를 유지하는 방법으로써 사용된다.

 

Client가 Server에 request를 보내면 Server는 Client는 고유한 ID를 가진 Session 객체를 만든다.

 

Session은 쿠키와는 다르게 Client측에 데이터를 저장하지 않고 Server에 저장하기 때문에 쿠키보다 보안상 안전하다.

 

JSP에서는 Session객체를 session변수를 이용해 접근할 수 있다.

 

[Session에 Data Set]

 

session.setAttribute("name1", "value1");

session.setAttribute("name2", "value2");

 

처럼 저장한다.

 

setAttribute의 첫 매개변수는 String type으로 된 해당 data의 key값이다.

 

두 번째 배개변수는 value이고 Object type으로 전달한다.

 

만약 Object type이 아니라 int, char과 같은 primitive data type일 경우, Integer와 객체로 Boxing 해서 전달한다.

 

[Session에서 Data Get]

 

session.getAttribute("name1");

 

처럼 key값으로 접근하여 value를 가져온다.

 

return type은 Object이기 때문에 원하는 type으로 Casting 하여 사용한다.

 

모든 저장된 정보를 알고 싶다면, session.getAttributeNames()을 사용한다.

 

session.getAttributeNames()는 세션에 저장된 모든 value에 대한 key를 Enumeration타입으로 return 한다.

 

예를 들어 다음과 같이 사용한다.

 

    Enumeration enumeration= session.getAttributeNames();

while(enumeration.hasMoreElements()){

sessionName= enumeration.nextElement().toString();

sessionValue= session.getAttribute(sessionName).toString();

out.println("Name: "+ sessionName+ "<br/>");

out.println("Value: "+ sessionValue+ "<br/>");

}

 

[Session의 ID]

 

session.getId();

 

return type은 String이다. 

 

Server에서 사용자를 식별하는 고유한 값이다.

 

[Session의 유지 시간]

 

session.getMaxInactiveInterval();

session.setMaxInactiveInterval(int second);

 

클라이언트가 일정 시간동안 서버에 응답을 보내지 않으면, 서버 측에서는 해당 사용자의 연결을 유지할 필요가 없다고 판단하여

해당 세션을 소멸시킨다.

 

얼마나 유지시킬 것인지를 정하거나 알아낼 수 있다.

 

[Session에 저장된 Data 삭제]

 

session.removeAttribute("name1");

 

세션에 저장된 정보를 key값을 이용해서 삭제할 수 있다.

 

[Session 삭제]

 

session.invalidate();

 

세션의 유지시간이 지나지 않았더라도 임의로 세션을 삭제할 수 있다.

(ex: 로그아웃)

 

if(request.isRequestedSessionIdValid()){

out.println("Session is valid");

}else{

out.println("Session is outdated");

}

 

위의 코드를 이용하여 세션이 유효한지 판단할 수도 있다.

 

 

 

'Backend > JSP' 카테고리의 다른 글

[JSP] 커넥션 풀(Connection Pool)  (0) 2018.01.05
[JSP] DAO, DTO 패턴  (0) 2018.01.05
[JSP] 서블릿 파라미터(Servlet Parameter)  (0) 2018.01.05
[JSP] 빈(Bean)  (0) 2018.01.05
[JSP] PreparedStatement  (0) 2018.01.03


Comments