728x90
반응형
웹서버와 클라이언트 간의 상태를 지속적으로 유지하는 방법 |
||
Session |
Cookies |
|
- 웹서버에 저장됨 - 보안성이 높으며, 웹서버 메모리 용량내에 저장가능함. |
- 클라이언트에 저장됨 - 암호화가 되지 않아 보안성이 낮다 - 웹서버는 웹브라우저가 전송한 쿠키를 사용해 필요한 데이터를 읽어올 수 있다. - 유효기간 미설정시 웹브라우저에 저장 (웹브라우저 닫을 때 삭제) - 유효기간 설정시 사용자의 PC에 저장됨 (유효기간이 지나면 자동으로 삭제) - 쿠키는 그 크기가 하나에 4KB이하로 제한이 되어 있으며, 총 300개까지 정보를 저장할 수 있다. 따라서, 최대로 저장 가능한 쿠키의 용량은 1200KB 즉 1.2MB |
14_01_session01_accessform.jsp
14_01_session01_process.jsp
session.getAttributeNames();14_01_session01_accessform.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> <form action="14_01_session01_process.jsp" method="post"> <p>아이디 : <input type="text" name="id"></p> <p>비밀번호 : <input type="text" name="passwd"></p> <p><input type="submit" value="전송"></p> </form> </body> </html>
14_01_session01_process.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> <% String user_id = (String) session.getAttribute("userID"); String user_pw = (String) session.getAttribute("userPW"); out.println("설정된 세션의 속성 값 [1] : " + user_id + "<br>"); out.println("설정된 세션의 속성 값 [2] : " + user_pw + "<br>"); %> </body> </html>
<%@ 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> <% String user_id = request.getParameter("id"); String user_pw = request.getParameter("passwd"); if(user_id.equals("admin") && user_pw.equals("1234")){ session.setAttribute("userID", user_id); session.setAttribute("userPW", user_pw); out.println("세션 설정이 성공했습니다<br>"); out.println(user_id+"님 환영합니다."); }else{ out.println("세션 설정이 실패했습니다."); } %><br> <a href="14_01_session02.jsp">세션 확인하기</a> </body> </html>
세션이 살아있는 동안 아래 화면 유지
(30분간 - tom cat)
14_01_session03.jsp
14_01_session03.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import ="java.util.Enumeration" %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% String name; String value; Enumeration en = session.getAttributeNames(); int i = 0; while (en.hasMoreElements()){ i++; name = (String) en.nextElement(); // name = en.nextElement().toString(); //toString()이 null값일 수도 있어서 다운캐스팅이 안전하다. value = session.getAttribute(name).toString(); out.println("설정된 세션의 속성 이름 [ " + i + " ] : " + name + "<br>"); out.println("설정된 세션의 속성 값 [ " + i + " ] : " + value + "<br>"); } %> </body> </html>
Enumeration<String> en = session.getAttributeNames(); value = (String) session.getAttribute(name); value = session.getAttribute(name).toString(); |
|
request.isRequestedSessionIdValid() | |
session.removeAttribute("userID"); 삭제할 session명 입력 session.invalidate(); 다중 세션 삭제 유효하지 않은 값 |
|
session.getMaxInactiveInterval(); 세션 유효시간 설정(초 단위) | |
session.getCreationTime(); session.getLastAccessedTime(); |
728x90
반응형
'[JAVA]' 카테고리의 다른 글
[JSP] session - getMaxInactiveInterval, getCreationTime, getLastAccessedTime (0) | 2024.03.20 |
---|---|
[JSP] session - removeAttribute, invalidate (0) | 2024.03.20 |
[JSTL] EL을 활용한 파라미터, 매서드 호출 (0) | 2024.03.19 |
[JSP] form (0) | 2024.03.19 |
[JSP] jstl = date, time, both (0) | 2024.03.19 |