본문 바로가기

강의 정리/JSP & Servlet (Seoul Wiz)

14. 세션

1. 세션

- 서버와의 관계를 유지하기 위한 수단

- 쿠키와 비슷하지만 쿠키와 달리 클라이언트가 아닌 서버상에 객체로 존재

- 서버에서만 접근이 가능하기 때문에 보안성이 좋음

- 저장 데이터의 한계가 없음

 

 

 

 

 

2. 동작 과정

- 세션은 클라이언트의 요청시 자동생성

- session이라는 내부객체를 지원하여 속성 설정 가능

세션의 동작 과정

 

 

 

3. 문법

 

 

 

1) 세션 생성 및 받아오기 테스트

 

① init.jsp (세션 생성)

	<%
		session.setAttribute("mySessionName", "mySessionData");
		session.setAttribute("myNum", 12345);
	%>
	
	<a href="sessionget.jsp">session get</a>

 

 

 

 

② get.jsp (세션 받아서 처리)

	<%
		Object obj1 = session.getAttribute("mySessionName");
		String mySessionName = (String)obj1;
		out.println(mySessionName +"<br />");
		
		Object obj2 = session.getAttribute("myNum");
		Integer myNum = (Integer)obj2;
		out.println(myNum +"<br />");
		
		out.println("************************ <br />");
		
		String sName;
		String sValue;
		Enumeration enumeration = session.getAttributeNames();
		while(enumeration.hasMoreElements()){
			sName = enumeration.nextElement().toString();
			sValue = session.getAttribute(sName).toString();
			out.println("sName : " + sName + "<br />");
			out.println("sValue : " + sValue + "<br />");
		}
		
		out.println("************************ <br />");
		
		String sessionID = session.getId();
		out.println("sessionID : " + sessionID + "<br />");
		int sessionInter =  session.getMaxInactiveInterval();
		out.println("sessionInter : " + sessionInter + "<br />");
		
		out.println("************************ <br />");
		
		session.removeAttribute("mySessionName");
		Enumeration enumeration1 = session.getAttributeNames();
		while(enumeration1.hasMoreElements()){
			sName = enumeration1.nextElement().toString();
			sValue = session.getAttribute(sName).toString();
			out.println("sName : " + sName + "<br />");
			out.println("sValue : " + sValue + "<br />");
		}
		
		out.println("************************ <br />");
		
		session.invalidate();
		if(request.isRequestedSessionIdValid()) {
			out.println("session valid");
		} else {
			out.println("session invalid");
		}
	%>

 

 

 

 

③ get.jsp 의 출력 화면

mySessionData
12345
************************ 
sName : myNum
sValue : 12345
sName : mySessionName
sValue : mySessionData
************************ 
sessionID : 7704086DBAC4973F0AB6FB4941D6112B
sessionInter : 1800
************************ 
sName : myNum
sValue : 12345
************************ 
session invalid 

 

 

 

 

 

 

 

 

 

2) 세션을 활용한 로그인 기능 구현

 

① 로그인 페이지

<form action="loginOk.jsp" method="post">
	아이디 : <input type="text" name="id" size="10"><br />
	비밀번호 : <input type="password" name="pw" size="10"><br />
	<input type="submit" value="로그인">
</form>

로그인 화면

 

 

 

 

② 로그인기능 처리 페이지

	<%!
		String id, pw;
	%>
	<%
		id = request.getParameter("id");
		pw = request.getParameter("pw");
		
		if(id.equals("abcde") && pw.equals("12345")) {
			session.setAttribute("id", id);	
			response.sendRedirect("welcome.jsp");
		} else {
			response.sendRedirect("login.html");
		}
	%>

 

 

 

 

③ 로그인성공 페이지

	<%
		Enumeration enumeration = session.getAttributeNames();
		while(enumeration.hasMoreElements()){
			String sName = enumeration.nextElement().toString();
			String sValue = (String)session.getAttribute(sName);
			
			if(sValue.equals("abcde")) out.println(sValue + "님 안녕하세요." + "<br />");
		}
	%>
	
	<a href="logout.jsp">로그아웃</a>

로그인 성공 화면

 

 

 

 

④ 로그아웃 페이지

	<%
		Enumeration enumeration = session.getAttributeNames();
		while(enumeration.hasMoreElements()) {
			String sName = enumeration.nextElement().toString();
			String sValue = (String)session.getAttribute(sName);
			
			if(sValue.equals("abcde")) session.removeAttribute(sName);
		}
		
	%>
	
	<a href="sessiontest.jsp">sessionTest</a>

 

 

 

 

⑤ 세션 소멸 확인 페이지

	<%
		Enumeration enumeration = session.getAttributeNames();
		int i = 0;
		while(enumeration.hasMoreElements()) {
			i++;
			
			String sName = enumeration.nextElement().toString();
			String sValue = (String)session.getAttribute(sName);
			
			out.println("sName : " + sName + "<br />");
			out.println("sValue : " + sValue + "<br />");
		}
		
		if(i == 0) out.println("해당 세션이 삭제 되었습니다.");
		
	%>

세션 소멸 확인 화면

 

'강의 정리 > JSP & Servlet (Seoul Wiz)' 카테고리의 다른 글

16. JAVA Bean  (0) 2019.08.14
15. 예외 페이지  (0) 2019.08.14
13. 쿠키  (0) 2019.08.06
12. 액션태그  (0) 2019.08.06
11. JSP (3)  (0) 2019.08.05