티스토리 뷰
[JSP]세션(Session)과 쿠키(Cookie) 개념정리및 실습 -session-
Waterbottle 2013. 8. 30. 13:18이번 시간에는 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메소드는 매우 중요하니 반듯이 할줄 알아야 합니다.
'허접한 프로그래밍 > [JSP]Programming' 카테고리의 다른 글
[내장객체]pageContext 객체 (0) | 2013.11.04 |
---|---|
웹 프로그램 업무 흐름도. (0) | 2013.09.08 |
[JSP] 내장객체(response객체) 개념 및 실습 (0) | 2013.08.25 |
[JSP]내장객체(request객체) -part2- (0) | 2013.08.24 |
[JSP]내장객체(request객체)+내장객체 개념 -part1- (0) | 2013.08.24 |