본문 바로가기
Spring/JSP

[JSP] 세션(Session)

by JJH0100 2022. 11. 21.
728x90
반응형

Ex01.

setSession.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	//세션 발급
	session.setAttribute("id", "test");
	session.setAttribute("pwd", "1234");
	session.setAttribute("age", 25);
%>
<h3>세션 설정</h3>
</body>
</html>

 

getSession.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<% 
	//getAttribute( ) 메소드의 반환 유형은 Object 형이므로 반드시 형 변환을 수행한 다음 사용해야 함
	//String, Integer = 래퍼 클래스(Wrapper Class)
	String id = (String)session.getAttribute("id");
	String pwd = (String)session.getAttribute("pwd");
	Integer age = (Integer)session.getAttribute("age");
%>
<h3>세션 값 가져오기</h3>
<%=id %> <br>
<%=pwd %> <br>
<%=age %>
</body>
</html>

실행화면

 

2022.11.21 - [JAVA/개념정리] - [Java] 래퍼 클래스(Wrapper Class)

 

[Java] 래퍼 클래스(Wrapper Class)

자바의 자료형은 크게 기본 타입(primitive type)과 참조 타입(reference type)으로 나누어진다. 2022.09.15 - [JAVA/개념정리] - [JAVA] 변수의 자료형 [JAVA] 변수의 자료형 변수 변수란 데이터를 저장하는 메모

jjh93.com

 


 

Ex02.

위와 같이 일일히 지정해서 가져올 수 있지만.

세션에 설정된 모든 값 가져와서 확인 할 수도 있다.

getSessions.jsp

<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>세션에 설정된 모든 값 가져오기</h3>
<%

Enumeration names = session.getAttributeNames();
while(names.hasMoreElements()){
	String name = names.nextElement().toString();
	String value = session.getAttribute(name).toString();
	out.print(name + " : " + value + "<br>");
}
%>
</body>
</html>

실행화면

 


 

Ex03. Session 정보확인

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>세션 정보를 얻어오는 메소드를 사용하기</h2>
<%
	String id_str = session.getId();
	long lastTime = session.getLastAccessedTime(); //마지막 접속 시간
	long createTime = session.getCreationTime(); //생성 시간
	long time_used = (lastTime - createTime)/60000; //접속 시간

	int inactive = session.getMaxInactiveInterval() / 60;
	boolean b_new = session.isNew(); //세션이 존재하면 true, 아닐시 false
%>
[1] 세션 ID는 [<%=session.getId() %>]입니다. <br><hr>
[2] 당신이 웹 사이트에 머문 시간은 <%=time_used %>분 입니다. <br><hr>
[3] 세션의 유효 시간은 <%=inactive %>분 입니다. <br><hr>
[4] 세션이 새로 만들어 졌나요? <br>
<%
if(b_new){
	out.print("예! 새로 만들어졌어요.");
} else {
	out.print("아니오! 새로 만들지 않았어요.");
}
%>
<hr>

</body>
</html>

 

 

.

Ex04. Session 삭제

removeSession.jsp

<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
	session.setAttribute("s1_name", "저는 첫번째 값이예요.");
	session.setAttribute("s2_name", "저는 두번째 값이예요.");
	session.setAttribute("s3_name", "저는 세번째 값이예요.");
	
	out.print("<h3>세션 값을 삭제 하기 전</h3>");
	
	Enumeration names;
	names = session.getAttributeNames();
	while(names.hasMoreElements()){
		String name = names.nextElement().toString();
		String value = session.getAttribute(name).toString();
		out.print(name + " : " + value + "<br>");
	}
	out.print("<br><hr><br>");
	
	//설정된 세션의 값들을 모두 삭제합니다.
	session.invalidate();	
	
	out.print("<h3>세션 값을 삭제 후</h3>");	
	out.print("과연 세션 아이디가 유효할까요?<br>");	
	if(request.isRequestedSessionIdValid() == true){
		out.print("세션 아이디가 유효합니다.");
	}else{
		out.print("세션 아이디가 유효하지 않습니다.");
	}
%>
</body>
</html>

728x90
반응형

댓글