본문 바로가기

java,jsp,spring/JSP

JSP 세션

세션(session)

  • session 객체
    • 보안과 데이터 기준
    • 세션 : 보안 우수, 데이터 제한 없음
    • 쿠키 : 보안 안 좋음, 데이터 4kb제한, pc에 저장
    • 세션과 브라우저 관계
    • 세션은 유지시간이 있음(기본 30분 > web.xml 파일 안에 있음)
    • session 객체 메소드
    • getAttribute(name) : name으로 session 값을 가져옴 > object 타입이라 String으로 받기 위해서는 형변환 필요
    • getAttributeNames() : 여러 세션 이름으로 값을 가져옴 > 열거형
    • setAttribute(name, value) : 세션 이름을 name, 세션 값을 value
    • setMaxInactiveInterval() : 유효 시간 설정
  • session 값 저장/가져오기
    • session.setAttribute(String name, Object value);
      • String Is_test = “ “;
      • session.setAttribute(”Testing”, Is_test);
    • Object getAttribute (String name)
      • Object Iobj_getdata = session.getAttribute(”Testing”);
      • String Is_getdata = (String)Iobj_getdata;
  • getAttributeNames 메소드 / Enumeration 인터페이스
    • hasMoreElements() : 요소가 존재하면 true
    • nextElement() : 다음에 값이 있으면 가져옴
  • 세션 정보 얻어오기
    • getId() : 세션 아이디
    • getCreationTime() : 세션이 생성된 시간
    • getLastAccessedTime() : 마지막 접근 시간
    • isNew() : 새로 생성된 세션인지 아닌지 확인 ( true : 새로 생성된 세션)
    • getMaxInactiveInterval() : 유효 시간이 얼마인지 얻어옴
  • 세션 삭제하기
    • void removeAttribute(java.lang.String name) : name에 맞는 세션 삭제
    • void invalidate() : 전부 삭제

[세션 정보 예제 코드]

<center><h3>[ 세션 값을 얻어오는 예제 - 2 ]</h3></center>
	<hr>
		getAttributeNames() 메소드를 사용하여 세션값을 얻어오는 예제입니다.
	<hr>
	<%
		String s_validate = "현재 페이지는 물론 페이지에서 설정된 세션 값들도 나타납니다.";
		session.setAttribute("Validate", s_validate);
		
		String s_name ="";
		String s_value="";
		
		Enumeration enum_app = session.getAttributeNames();
		int i=0;
		
		while(enum_app.hasMoreElements()){
			i++;
			s_name = enum_app.nextElement().toString();
			s_value = session.getAttribute(s_name).toString();
			
			out.println("<br>얻어온 세션 이름 ["+i+"] : "+s_name+"<br>");
			out.println("<br>얻어온 세션 값 ["+i+"] : "+s_value+"<hr>");
		}
	%>

[여러 세션 얻는 예제 코드]

<center><h3>[ 세션 값을 얻어오는 예제 - 2 ]</h3></center>
	<hr>
		getAttributeNames() 메소드를 사용하여 세션값을 얻어오는 예제입니다.
	<hr>
	<%
		String s_validate = "현재 페이지는 물론 페이지에서 설정된 세션 값들도 나타납니다.";
		session.setAttribute("Validate", s_validate);
		
		String s_name ="";
		String s_value="";
		
		Enumeration enum_app = session.getAttributeNames();
		int i=0;
		
		while(enum_app.hasMoreElements()){
			i++;
			s_name = enum_app.nextElement().toString();
			s_value = session.getAttribute(s_name).toString();
			
			out.println("<br>얻어온 세션 이름 ["+i+"] : "+s_name+"<br>");
			out.println("<br>얻어온 세션 값 ["+i+"] : "+s_value+"<hr>");
		}
	%>

[유효기간 설정 예제 코드]

<h4>----- 세션 유효 시간 변경 전 -----</h4>
	<%
		int time = session.getMaxInactiveInterval()/60;
		out.print("세션 유효 시간 : "+time+"분<br>");
	%>
	<h4>----- 세션 유효 시간 변경 후 -----</h4>
	<%
		session.setMaxInactiveInterval(60 * 60);
		time = session.getMaxInactiveInterval() / 60;
		out.print("세션 유효 시간 : "+time+"분<br>");
	%>

'java,jsp,spring > JSP' 카테고리의 다른 글

JSP JDBC  (0) 2022.08.24
JSP 예외 처리, 자바 빈  (0) 2022.08.17
JSP 쿠키  (0) 2022.08.15
JSP 지시자, request/response 객체, 액션태그  (0) 2022.08.15
JSP 동작 원리, 태그  (0) 2022.08.10