-
JSP- 세션(Sesssion)기타/Servlet 2020. 12. 9. 16:44
정의
클라이언트가 서버에 접속해있는 상태
쿠키와 마찬가지로 상태 정보를 유지하는 기술
방문자가 웹 브라우저를 열어 서버에 접속하고 다시 닫아 서버와의 연결을 종료하는 순간까지의 한 단위
세션은 브라우저당 하나의 세션을 가진다
세션의 종료 시점은 브라우저를 닫거나 아무 행동 없이 세션 유지시간이 다되었을 때 종료된다.
로그인 등의 인증처리를 할 때 사용된다.
쿠키에 비해 보안이 비교적 강하다
세션은 쿠키와 다르게 서버에 저장된다.
세션의 기본 유지시간은 30분이다.
page 지시어의 session 속성이 true인 경우에만 사용할 수 있다.
세션 메소드
session.setAttribute("name", "value"); Object로 저장 session.setAttribute("name"); 해당 이름의 session 반환 session.getId(); 세션 고유 아이디 저장 session.setAttributeNames(); 세션의 모든 name을 불러온다 (Enumeration 대입) session.removeAttibute("name"); 세션삭제 session.invalidate(); 세션 모두 초기화 예제
로그인 페이지
<% request.setCharacterEncoding("UTF-8"); %> <body> <div class="wrap"> <form action="loginOk.jsp" method="post"> <span>아이디</span> <input type="text" name="id" class="f_input"/> <span>비밀번호</span> <input type="password" name="pw" class="f_input"/> <input type="submit" value="로그인" class="b_input"/> </form> </div> </body>
로그인 확인 페이지
<% String id = request.getParameter("id"); String pw = request.getParameter("pw"); if(id.equals("madang") && pw.equals("madang")){ session.setAttribute("id", id); session.setAttribute("pw", pw); session.setAttribute("name", "arashi"); }else{ response.sendRedirect("login.jsp"); } response.sendRedirect("sessionInfo.jsp"); %>
request객체의 getParameter 메서드를 이용하여 데이터가 넘어왔다.
이 정보를 session에 저장한다.
세션을 저장할 때는 setAttribute(); 메서드를 이용한다.
정보 저장이 끝나면 세션 정보를 가지고 sesstionInfo.jsp 페이지로 이동한다.
세션정보페이지
<% session = request.getSession(); out.println(session.getAttribute("name") + "님 환영합니다 <br/>"); %>
단순하게 하나의 session을 불러올 때는 getSession(); 메서드를 이용한다.
<%@ page import ="java.util.Enumeration" %> <% out.println(session.getAttribute("name") + "님 환영합니다 <br/>"); //세션에 있는 모든 데이터의 이름을 가져온다 Enumeration sessionNames = session.getAttributeNames(); //sessionNames 객체의 모든 요소들 while(sessionNames.hasMoreElements()){ String key = sessionNames.nextElement().toString(); String value = session.getAttribute(key).toString(); out.println("세션 key: " + key + "=" + value + "<br/>"); } %> <a href="logout.jsp">로그아웃</a>
로그아웃
<% session.removeAttribute("id"); session.removeAttribute("pw"); // import java.util.Enumeration // 세션의 모든 정보를 얻는 방법 // 모든 세션정보 제거하는 법 // session.invalidate(); // 세션 정보가 유효한지를 식별하는 법 if(request.isRequestedSessionIdValid()){ out.println("세션 valid"); Enumeration<String> sessionNames = session.getAttributeNames(); while(sessionNames.hasMoreElements()){ String key = sessionNames.nextElement().toString(); String value = session.getAttribute(key).toString(); out.println("세션 key: " + key + "=" + value); } }else{ out.println("세션 invalid"); } %>
모든 정보를 날릴 때는 session.invalidate(); 를 사용한다
'기타 > Servlet' 카테고리의 다른 글
JSP - 자바빈(Bean) (0) 2020.12.10 JSP - 예외처리 (Exception) (0) 2020.12.10 JSP- 쿠키(Cookie) (0) 2020.12.09 JSP - 액션태그 (0) 2020.12.09 JSP - 리퀘스트 (Request) 기본객체 (0) 2020.12.09