Session 저장
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>session setAttribute</title>
</head>
<body>
<h2>섹션 저장하기</h2>
<%
//cookie방식
Cookie cookie=new Cookie("cookieId","easyliving");
Cookie cookie2=new Cookie("cookieNickName","EASYLIVING");
cookie.setMaxAge(60*30);
cookie2.setMaxAge(60*30);
response.addCookie(cookie);
response.addCookie(cookie2);
//Session방식
session.setAttribute("sessionId", "easyliving");
session.setAttribute("sessionNickName", "EASYLIVING");
%>
<br>
<button type="button"><a href="jsp1227_02_read.jsp"> session읽기</a></button>
</body>
</html>
Session read
1. session.getAttribute("") : 경우 return type이 object이다
따라서 (String)session.getAttribute("sessionId");
이렇게 (String)type으로 바꿔서 읽어들어온다.
2.Enumeration 객체를 하나 만들어서 모든 session name을 다 읽어들어올 수 있다.
3.session.getId() :return type이 string [session의 고유번호]
4.session.getMaxInactiveInterval(): return type이 int [session 유지시간]
<%@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>session getAttribute</title>
</head>
<body>
<%
//쿠키 읽어 들어오기
/*Cookie[] cookies=request.getCookies();
for(int i=0; i<cookies.length;i++){
cookies[i].getName();
cookies[i].getValue();
}*/
//session읽어 들어오기
String sessionId=(String)session.getAttribute("sessionId"); //return type이 object
String sessionNickName=(String)session.getAttribute("sessionNickName");
//해당 session가져오기
out.println("<h2>해당 SESSION</h2>");
out.println("sessionId:"+sessionId);
out.println("<br>");
out.println("sessionNickName:"+sessionNickName);
out.println("<br>=============================================================<br>");
out.println("<h2>session 모두가져오기(enumeration)</h2>");
String sessionName;
String sessionValue;
//모든 session 가져오기
Enumeration enumeration=session.getAttributeNames();//enumeration string type
while(enumeration.hasMoreElements()){
//enumeration.nextElement().toString();
sessionName=(String)(enumeration.nextElement());
sessionValue=(String)(session.getAttribute(sessionName));
out.println("sessionName:"+sessionName+"<br>");
out.println("sessionValue:"+sessionValue+"<br>");
}
out.println("<br>=========================<br>");
out.println("session getId:"+session.getId()+"<br>"); // session.getId()경우 return type이 string이다
out.println("session interval:"+session.getMaxInactiveInterval()); //return type은 int
%>
<br>
<button type="button"><a href="jsp1227_02_del.jsp"> session삭제</a></button>
</body>
</html>
Session delete
1.session.removeAttribute("NAME"); :session 해당 name 데이터 삭제
2.session.invalidate(); : session 데이터 전부 삭제
3.request.isRequestedSessionIdValid();: 요청애 포함된 클라이언트의 세션 id가
유효하면 true를 리턴하고 유효하지 않으면 false를 반환
<%@page import="org.apache.catalina.webresources.AbstractArchiveResource"%>
<%@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>session removeAttribute, invalidate</title>
</head>
<body>
<%
//session.removeAttribute("sessionId");
String sessionName;
String sessionValue;
Enumeration enumeration=session.getAttributeNames();
while(enumeration.hasMoreElements()){
sessionName=enumeration.nextElement().toString();
sessionValue=session.getAttribute(sessionName).toString();
out.println("sessionName:"+sessionName+"<br>");
out.println("sessionValue:"+sessionValue+"<br>");
}
out.println("<br>========================<br>");
session.invalidate();
out.println("invalidate 모두삭제 됨.");
if(request.isRequestedSessionIdValid()){
out.println("session이 존재함");
out.println("<br>========================<br>");
}else{
out.println("session이 존재하지 않음");
}
%>
</body>
</html>
공부