session 정보 저장 확인 삭제

조수경·2021년 12월 8일
0

고급자바

목록 보기
93/97

session.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">

<title>session 연습</title>
</head>
<body>
<a href="<%=request.getContextPath() %>/sessiononAddTest.do">
Session 정보 저장하기 </a><br><hr><br>
<a href="<%=request.getContextPath() %>/sessiononReadTest.do">
Session 정보 확인하기 </a><br><hr><br>
<a href="<%=request.getContextPath() %>/sessiononDeleteTest.do">
Session 정보 삭제하기 </a><br><hr><br>
</body>
</html>

Session 정보 저장하기

	1. Session 객체를 생성하거나 현재 Session정보 가져오기
	 형식1) request객체.getSession() 또는 request객체.getSession(true)
	       ==> 현재 Session이 존재하면 현재 Session을 반환하고,
	           존재하지 않으면 새로운 Session을 생성한다.
	 형식2) request객체.getSession(false);
	       ==> 현재 Session이 존재하면 현재 세션을 반환하고
	       존재하지 않으면 null을 반환한다.
           HttpSession session = request.getSession();//세션이 만들어진것
           
           2. setAttribute()메서드를 이용하여 Session값을 저장한다.
	 형식) session객체.setAttribute("key값", session값);
     //(문자열, 아무값이나 가능)
	     ==> 'key값'은 문자열, 'session값'은 모든 종류의 데이터
        MemberVO memVo = new MemberVO();
	memVo.setMem_id("a001");
	memVo.setMem_name("홍길동");
	memVo.setMem_pass("1234");
	memVo.setMem_tel("010-1019-0781");
	memVo.setMem_addr("대흥동");
	
	session.setAttribute("memVo", memVo);
	session.setAttribute("userName", "이순신");
	session.setAttribute("age", 30);
    
    
        response.setCharacterEncoding("utf-8");
	response.setContentType("text/html; charset=utf-8");
	PrintWriter out = response.getWriter();
	
	out.println("<html><head><meta charset='utf-8'>");
	out.println("<title>세션저장</title></head>");
	out.println("<body>");
	out.println("<h2>세션 데이터가 저장되었습니다.</h2><br><br>");
	out.println("<a href='"
	             +request.getContextPath()
	             +"/session/sessionTest.jsp'>시작문서로가기</a>");
	out.println("</body></html>");
	
}
저장된 Session정보 읽어오기	
1. Session객체 생성 또는 현재 Session 가져오기
        HttpSession session = request.getSession();
	
	out.println("<html><head><meta charset='utf-8'>");
	out.println("<title>세션읽기</title></head>");
	out.println("<body>");
	out.println("<h2>저장된 Session 데이터 확인하기</h2><hr>");
	out.println("<h3>Session 데이터 1개 확인하기</h3>");
    
     2. getAttribute()메서드로 Session값을 읽어온다.
	 형식) session객체.getAttirbute("key값");
   String userName = (String) session.getAttribute("userName");// 키 값을 명확히 알때
		if(userName==null) { //session에 해당 'key값'으로 저장된 데이터가 없을 때
			out.println("<h3>userName의 Session값이 없습니다.</h3>");
		}else {
			out.println("<h3>userName의 세션값 : " + userName + "</h3>");
		}
		out.println("<hr>");

세션에 있는 모든 값을 가져오고 싶을때

out.println("<h3>전체 session 데이터 확인하기</h3>");
		out.println("<dl>");

session의 모든 'key값'을 가져온다.

Enumeration<String> sessionNames = session.getAttributeNames();
		while(sessionNames.hasMoreElements()) { //다음 데이터가 있는지 검사

session의 'key값' 1개 가져오기

String sessionKey = sessionNames.nextElement();	
Object data = session.getAttribute(sessionKey);

문자와 숫자만 있는게 아니라 객체도 저장해야 하기 때문에

out.println("<dt>"+sessionKey +"</dt>");
	 if(data instanceof MemberVO) {
	MemberVO memvo = (MemberVO)data;
	out.println("<dd>"+sessionKey + "</dt>");
	out.println("<dd>"+memvo.getMem_id()+"</dd>");
	out.println("<dd>"+memvo.getMem_name()+"</dd>");
	out.println("<dd>"+memvo.getMem_pass()+"</dd>");
	out.println("<dd>"+memvo.getMem_tel()+"</dd>");
	out.println("<dd>"+memvo.getMem_addr()+"</dd>");
			 }else {
				 out.println("<dd>"+data+"</dd>");
			 }
		}
                out.println("</dl>");
		out.println("<hr>");

세션ID ==> 세션을 구분하기 위한 고유한 값(세션을 찾을 값으로 사용함)

out.println("세션ID: " + session.getId()+"<br>");

생성시간 ==> 1970년1월1일부터 경과한 시간(밀리세컨드단위)

out.println("세션 생성 시간 : " + session.getCreationTime()+"<br>");

최근 접근 시간 ==> 1970년1월1일부터 경과한 시간(밀리세컨드단위)

out.println("세션에 최근에 접근한 시간" + session.getLastAccessedTime()+"<br>");

세션 유효시간 ==> 세션이 생성된 후에 유지되는 시간(초 단위)
==> 유효시간 설정 : session객체.setMaxInactiveInterval(시간);

 ```
 out.println("세션 유효 시간: " + session.getMaxInactiveInterval()+"<br>");
	out.println("<br><hr><br>");
	out.println("<a href='"
	             +request.getContextPath()
	             +"/session/sessionTest.jsp'>시작문서로가기</a>");

	
	
	out.println("</body></html>");
    
    

Session 삭제하기

		

1. Session객체 생성 또는 현재 Session 가져오기

     
     HttpSession session = request.getSession();
     
     
     

2. removeAttribute()메서드로 개별적인 session값 삭제하기

		   ==> 형식) session객체.removeAttribute("key값");
		            ==> session객체는 삭제되지 않고 해당 
	                'key값'에 설정된 'session값'만 삭제된다.	
                    
                    session.removeAttribute("userName");	
                    

3. invalidate()메서드로 Session객체 삭제하기

		  ==>Session겍체 자체가 삭제된다.
		 형식) session객체.invalidate();
         
         session.invalidate(); //세션 자체를 삭제한는것
         
         	out.println("<html><head><meta charset='utf-8'>");
		out.println("<title>세션저장</title></head>");
		out.println("<body>");
		out.println("<h2>Session정보 삭제하기</h2>");
		
		out.println("<a href='"
	             +request.getContextPath()
	             +"/session/sessionTest.jsp'>시작문서로가기</a>");
		
	    out.println("</body></html>");
		
	}
profile
신입 개발자 입니다!!!

0개의 댓글

관련 채용 정보