본문 바로가기
컴퓨터과학[3-2]/J.S.P

JSP - [제9강] 세션 사용하기

by boolean 2016. 7. 22.
728x90

JSP - [제9강] 세션 사용하기

session 객체 사용하기, HttpSession 클래스, 세션을 이용한 로그인, 로그아웃

JSP 용어정리

  • 세션
    웹 어플리케이션은 클라이언트의 연관된 여러 요청을 처리할 수 있어야 한다. 이때 클라이언트의 상태를 관리하기 위한 방법의 하나가 세션이다. 세션 정보는 웹 서버에 저장되므로 쿠키에 비해 보안에 강하다. 웹 컨테이너는 쿠키나 URL Rewriting(브라우저가 쿠키를 지원하지 않는 경우) 방법을 사용하여 세션을 구현한다.
  • 세션의 유효기간
    세션의 유효시간은 클라이언트가 마지막 요청을 한 후, 추가 요청이 없어도 세션이 유지될 수 있는 기간이다. 세션의 타임아웃 시간이라고도 한다. 사용자가 웹 브라우저를 종료하거나 사용자의 마지막 요구가 있은 후 지정된 유효시간이 지나면 세션이 종료된다.
  • 쿠키의 도메인
    기본적으로 쿠키는 그것을 보내 준 서버에게 요청할 때만 클라이언트로부터 전송된다. 쿠키의 도메인 설정을 통해 같은 도메인 상에 있는 다른 서버들이 쿠키를 공유할 수도 있다.
  • session 내장 객체
    JSP 페이지에서 세션 관리를 위해 사용되는 것이 웹 컨테이너가 제공하는 session 내장 객체이다. 내장 객체 session의 유형은 HttpSession이다.
  • HttpSession 인터페이스
    웹 컨테이너는 HTTP 세션을 생성하기 위해 HttpSession 인터페이스를 사용한다. HttpSession 인터페이스를 통해 세션 아이디, 세션 생성 시간, 세션의 마지막 접근 시간 등의 정보를 관리할 수 있으며 session 객체에 공유 속성을 추가할 수도 있다.

요점정리

  1. 세션은 쿠키와 마찬가지로 클라이언트의 상태 정보를 관리하기 위한 것이다. 쿠키와 다르게 세션 정보는 웹 브라우저가 아니라 서버에 저장된다.
  2. 세션 관리를 위한 session 내장 객체는 클라이언트가 웹 서버에 최초 접속했을 때 자동으로 생성된다.
  3. 세션이 유지되는 동안 웹 브라우저의 여러 요청을 처리하는데 사용되는 JSP 페이지들은 session 객체를 공유한다.
  4. session 객체에 속성을 저장할 수 있다. 속성을 추가할 때는 다른 내장 객체와 마찬가지로 setAttribute() 메서드를 사용하고, 설정된 속성의 값을 읽어올 때에는 getAttribute() 메서드를 사용한다. session 객체는 HttpSession 유형이다.
  5. 웹 브라우저를 종료하면 서버에 저장된 세션이 삭제된다.
  6. 웹 브라우저를 종료하지 않더라도 세션의 유효시간이 경과하면 삭제된다. 유효시간은 서버에 추가 요청을 하지 않아도 세션을 유지시킬 수 있는 최대 시간이다. 서버에 저장된 세션을 삭제하기 위해서 invalidate() 메서드를 사용할 수도 있다.
  7. 세션의 유효시간을 설정하는 첫 번째 방법은 web.xml 파일에 <session-timeout> 항목을 추가하는 것이고, 두 번째 방법은 session 객체의 setMaxInactiveInterval() 메서드를 사용하여 유효시간을 설정하는 것이다.

연습문제

  • 연습문제1
    session 객체에 속성을 추가하기 위한 메소드는 무엇인가?
    답을 체크하세요
    정답 :
    해설 :
    다른 내장 객체와 마찬가지로 setAttribute(String name, Object value)를 사용한다. 첫 번째 인자는 속성의 이름으로 String 유형이며, 두 번째 인자는 속성의 값으로 Object 유형이다.
  • 연습문제2
    세션의 유효시간이란 무엇인가?
    답을 체크하세요
    정답 :
    해설 :
    세션의 유효시간이 1분이라면 마지막 요청 후 1분 이내에 추가 요청이 있어야 세션이 유지된다.
  • 연습문제3
    세션이 종료되는 경우가 아닌 것은?
    답을 체크하세요
    정답 :
    해설 :
    기본적으로 사용자가 웹 브라우저를 종료하면 세션이 종료된다. 웹 브라우저를 종료하지 않더라도 보기2와 3의 경우가 생기면 세션이 종료될 수 있다.
  • 연습문제4
    세션을 관리하기 위해 JSP 페이지에서 사용되는 내장 객체 session의 유형은 무엇인가?
    답을 체크하세요
    정답 :
    해설 :
    세션은 HTTP 프로토콜을 사용할 때 필요한 것이며, 세션의 관리를 위해 사용되는 session 내장 객체의 유형은 HttpSession이다.
  • 연습문제5
    세션을 사용하여 로그인을 처리하는 JSP 페이지를 구현하였다. 필요한 작업이 아닌 것은?
    답을 체크하세요
    정답 :
    해설 :
    세션을 사용하여 로그인을 처리할 때는 사용자 정보를 session 객체에 속성으로 저장하며 쿠키를 만들 필요는 없다.


댓글