Session

essential·2023년 8월 6일
0

JSP

목록 보기
18/21

Session 이란

  • 서버 측의 컨테이너에서 관리되는 정보
  • 컨테이너에 접속해서 종료되기까지(브라우저를 종료할 때까지) 유지

HTTP 프로토콜의 특성

  • HTTP란?
    • 웹 상에서 텍스트, 이미지, 사운드 등의 파일들을 주고받기 위한 통신 규약
  • 특성
    • 데이터를 요청하고 데이터의 결과 값을 받게 되면 바로 연결은 종료
  • HTTP 프로토콜 흐름

세션의 개요

  • 클라이언트와 서버간의 접속을 유지시켜주는 역할 수행
  • 클라이언트가 세션에 요청할 경우 서버 측에서는 클라이언트에게
    클라이언트를 구분할 수 있는 식별자(세션 ID)를 부여
  • 여러 클라이언트가 요청하는 정보들은 이 세션 ID를 통하여 각
    클라이언트를 구분하여 정보를 저장

JSP에서의 세션 관리

  • 객체 메소드 알아보기
메소드명설명
setAttribute(String name, Object value)세션 객체에 속성을 저장한다
removeAttribute(String name)저장된 속성을 제거한다.
getAttribute(String name)속성을 반환한다.
getId()클라이언트의 세션 ID 값을 반환한다.
setMaxInactiveInterval(int seconds)세션의 유지 시간을 설정한다.
getMaxInactiveInterval세션의 유지 시간을 반환한다.
invalidate()현재의 세션 정보들을 모두 제거한다.
  • setAttribute(String name, Object value)
    • session.setAttribute(”name”, “lee”);
      • 세션 객체에 lee 라는 값이 들어 있는 name 속성을 저장
    • String name = (String)session.getAttribute(”name”);
      • 세션 객체에서 name 속성을 얻어 온다.
  • removeAttribute
    • session.removeAttribute(”name”)
    • 저장되어 있는 속성 값을 제거할 때 사용
  • setMaxInactiveInterval
    • session.setMaxInactiveInterval(1000);
      • 세션의 유지 시간을 설정하며 초 단위로 인자 값을 설정
  • getMaxInactiveInterval
    • session.getMaxInactiveInterval(”name”, “lee”)
    • 세션의 유지 시간을 반환
  • invalidate
    • session.invalidate();
    • 세션의 모든 속성을 제거

예제

sessionTest.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
	String name;
	if(session.getAttribute("name")!=null){
		name=(String)session.getAttribute("name");
	}else{
		name="세션 값 없음";
	}

%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session Test</title>
</head>
<body>
<h2>세션 테스트</h2>
<input type="button" onclick="location.href='sessionSet.jsp'" value="세션 값 저장">
<input type="button" onclick="location.href='sessionDel.jsp'" value="세션 값 삭제">
<input type="button" onclick="location.href='sessionInvalidate.jsp'" value="세션 값 초기화">
<h3><%=name %></h3>
<h3><%=session.getId()%></h3>
</body>
</html>

sessionSet.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%session.setAttribute("name","Session Test!");  %>
<script>
location.href="sessionTest.jsp";
</script>

sessionDel.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%session.removeAttribute("name");  %>
<script>
location.href="sessionTest.jsp";
</script>

sessionInvalidate.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%session.invalidate();  %>
<script>
location.href="sessionTest.jsp";
</script>

SessionTest.jsp 실행 시 화면 (세션 값 삭제 시에도 동일)

세션 값 저장 시 나오는 화면

세션 값 초기화 시 나오는 화면

  • session Id 값 변경 됨
profile
essential

0개의 댓글