12주차 - jsp (15) 기본객체 메서드

2022. 10. 13. 19:03jsp/jsp

이번의 목표

01. 세션(session)에 대해 알아보자.

02. 속성(Attribute)의 메서드를 사용해보자.


WEB session 이란?
- TCP에서 지속적인 연결의 개념을 사용하게 되면 서버에 부하가 발생한다.
- 비 연속적으로 서버에 접근하는 웹 클라이언트를 구분하기 위해 WEB session을 사용한다.
- 인증하기 위한 정보
- 웹 브라우저가 맨 처음 웹 서버에 접근 시 세션을 웹서버가 생성하여 웹브라우저로 전달
- 웹 브라우저는 앞으로 웹서버에 접근 시마다 웹서버가 전달해준 세션을 담아서 요청
- 웹 서버는 웹 브라우저의 요청에 담겨 있는 세션을 확인하여 여러 웹 브라우저를 식별


※session : 네트워크를 통해 두 대의 시스템 간의 활성화된 접속을 의미합니다.

 

지난 시간엔 기본 객체 종류와 사용 가능한 메서드 네가지에 대해 알아 보았습니다. 

그리고 기본 객체의 흐름을 눈으로 확인하기 위해 Redirect, forward에 대해서도 알아봤습니다.

>>이전글 보러가기<<

이번에는 기본 객체의 메서드 setAttribute(), getAttribute(), removeAttriute(), invailidate() 그리고 setMaxInactiveInterval() 에 대해 알아보겠습니다.

session을 기준으로 하여 설명하겠습니다.

 

setAttribute()는  객체에 이름과 값의 형태로 속성을 저장합니다.

예시)

session.setAttribute("이름","속성 값")

이때 값은 문자열, 정수, 실수, 문자열 등이 가능합니다.

 

getAttribute()는 객체에서 ("이름")으로 된 값을 반환합니다.

예시)

session.getAttribute("이름")

이때, 가져온 값의 자료형은 object이기 때문에 이를 변수에 저장하기 위해서는 형변환이 필요합니다.

 

removeAttribute()는 ("이름")에 해당하는 속성을 삭제합니다.

예시)

session.removeAttribute("이름")

삭제의 성공 여부에 따른 반환값은 없습니다.

 

invalidate()는 현재 사용중인 클라이언트(사용자)의 모든 속성값을 삭제합니다.

예시)

session.invalidate()

 

그리고 마지막으로 알아볼것은 setMaxInactiveInterval() 입니다.

이것은 속성의 지속시간을 설정하는 것으로 초단위로 입력합니다. 입력하지 않았을 때의 기본값은 1800초(30분)입니다.

예시)

session.setMaxInactiveInterval(60)
01. 코드

 


01.코드

	<%
		session.setAttribute("id", "admin");
		session.setAttribute("likes", new String[]{"집에 있기","잠을 많이 자기"});
		

		// session에서 가져온 값은 Object 자료형이기 때문에 형변환을 해야한다.
		String id = (String) session.getAttribute("id");
		String[] likes = (String[])session.getAttribute("likes");
		
		session.setMaxInactiveInterval(60);
		// 세션의 지속시간. 매개변수는 초 단위로 입력. 기본값은 1800초(30분)
		
		// 매개변수에 넣어준 속성 삭제
		session.removeAttribute("id");

		// 클라이언트(사용자)의 session을 모두 삭제 - 현재 사용자인 클라이언트 1명만 삭제.
		session.invalidate(); 
	%>