티스토리 뷰

이번 시간에는 Session과 Cookie의 객체 메소드와 사용방법을 알아보고 간단한 예제를 통해서 개념을 정리해보는 시간을 가지도록 하겠습니다.

 

 

 

 

세션(Session)

 

  • 세션은 접속시간에 제한을 두어 일정 시간 응답이 없다면 정보는 더 이상 유지되지 않게 설정이 가능하다.

->그래서 보안성이 좋다.

  • 보안이 필요한 정보를 공유하기 위해서는 서버측 관리될 수 있는 세션을 이용한다.

 

세션을 아주 간단하게 알아보았습니다.

 

근데 세션을 공부하기전에 HTTP프로토콜 이라는 개념을 알고 지나가야 합니다.

 

HTTP프로토콜

 

  • Web상에서 텍스트, 이미지, 사운드 등 파일들을 주고받기 위한 통신규약
  • HTTP프로토콜은 데이터 송/수신이 완료되자마자 바료 연결이 끊어지게되는 특징을 가지고 있다.

 

클라이언트(사용자)에서 서버측으로 연결을 한 다음여 요청(request)를 하고나서 서버측에서 그 요청을 받아드려 응답(response)를 하고나면 연결이 끊어지게 된다는 말이다.

 

만약 이렇게 데이터의 교환이 이루어지고나자마자 마로 끊어지게된다면 또다시 연결을 해야하고 원만한 정보교류가 이루어지지 않는다.

그래서 세션(Session)이라는 개념을 사용합니다.

 

 

 

세션은

-클라이언트(사용자)와 Server간의 접속을 유지시켜주는 역활을 합니다.

-그래서 HTTP프로토콜의 단점을 보안하기위해서 세션을 이용하는 것이다.

->클라이언트 측의 정보를 세션이 담고 있으려면 연결이 끊어지지 않고 유지해야 하기 때문

-여러 클라이언트가 요청하는 정보들은 이 세션 ID를 통해서 클라이언트를 구분하여 정보를 저장합니다.

 

 

 

 

 

세션의 각 객체 메소드를 간단하게 개념정리를 해보고 예제를 통해서 알아보도록 하겠습니다.

 

 

 

메소드 

설명 

setAttribute(String name, object value) 

세션 객체에 속성을 저장한다. 

removeAttribute(String name) 

저장된 속성을 제거한다. 

getAttribute(String name) 

저장된 속성을 반환한다. 

getid() 

클라이언트의 세션 ID값을 반환한다. 

setMaxInactivelInterval(int seconds) 

세션의 유지시간을 설정(초단위) 

getMaxInactiveInterval() 

세션의 유지 시간을 반환 

invalidate() 

현재의 세션을 정보들을 모두 제거 

 

 

 

일단 Session라는 폴더를 생성해 주셔서 사진처럼 4개의 JSP파일들을 만들어 줍니다.

 

 

 

가장 먼저 sessionTest.jsp파일로 가보겠습니다.

 

 

 

 

 

 

일단 버튼의 값이 한글이니까

여기서 집고 넘어나갸 할 점!!!

"sessionDel.jsp" 을 안쓰고 'sessionDel.jsp' 를 썻느냐??

 

그 이유는 큰 따옴표 " " 를 두번을 쓸수 없으니 두번째 사용할때부터는 작은 따옴표 ' ' 를 쓴것이다.

 

이것을 쓴것이다.

 

 

 

 

버튼을 클릭하면 onclick속성으로 넘어간다.

 

 

Strng형 name변수를 선언해 주었다.

그리고 나서 if조건식을 이용해서

session을 이용해 "name"이라는 속성을 가지오오는데 그 "name"속성이 null이 아니라면

String형 name변수에다가 "name"속성을 가지고 온다는 것이다.

근데 여기서 주의할점은

 

String부분이다. 왜 String으로 형변환을 해주었을까??

그 이유는 setAttribute메소드의 문법이 setAttribute(String name, Object value); 이여서 이기 때문이다.

 

그래도 모르시겠죠???

Object형은 쉽게 말해서 가장 최상위 클래스 라고 보시면 됩니다. 즉, 클래스에서 신(GOD)이죠 ㅎㅎ

그리고 getATtribute의 기본적인 반환 값 타입도 Object이므로 String으로 형변환을 해주어야 합니다.

 

 

if문의 조건식이 맞지 않으면 name변수에다가 "세션 값 없음 을 저장해 준다는 의미입니다.

 

그래서 이 변수 name은

 

 

 

 

요렇게 표현식을 사용해주므로써 사용합니다.

 

 

 

이제 sessionSet.jsp파일로 넘어가 줍니다.

 

 

 

여기서는 setAttribute메소드를 사용하므로써

session객체에 "Session Test~!!입력 완료~!" 이것을 name속성으로 저장한다.

그리고 <script>태그 안에 있는 location.href는 sessionTest.jsp파일로 이동시킨다는 의미입니다.

 

session객체에 존재 하는 name속성을 제거한다음에

sessionTest.jsp파일로 이동시킵니다.

 

 

session객체에 존재하는 모든 속성을 제거합니다. 이것이 바로 세션 초기화 입니다.

그리고 sessionTest.jsp파일로 이동합니다.

 

 

 

sesioninvalidate(); 메소드는 보통 Web상에서 로그아웃을 구현할때 많이 사용됩니다.

 

여기서 setAttribute 메소드와 getAttribute메소드는 매우 중요하니 반듯이 할줄 알아야 합니다.

 

 

 

 

 

 

 

 

 

Comments