세션 값 확인

2022. 12. 5. 23:52JSP

sessionInit.jsp

============

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>세션만들기</title>
</head>
<body>
<%
/* 스크립트릿으로 내부객체인 session객체를 이용하여 값을 설정한다.현재 이 jsp파일이 서버에
요청을 하게 되면 컨테이너가 서블릿으로 변환되면서 session객체가 자동으로 생성되면서 컴파일이
이루어진다. */

//세션의 속성을 지정하는 코드
session.setAttribute("abcde", 12345);
session.setAttribute("feed", "feed");
%>

<a href="sessionGet.jsp">세션값 확인 이동</a>
</body>
</html>

======================================================================================

 

sessionGet.jsp

============

<%@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>세션 값 확인</title>
</head>
<body>
<%
//지금은 하나하나의 Name을 주고 Value를 얻어서 출력하는 경우이다.
//session의 getAttribute()의 반환타입은 Object타입이라
//강제로 다운캐스팅 하였다.
Object obj1 = session.getAttribute("abcde"); //속성값 얻기
Integer intValue = (Integer)obj1;//downcasting,integer type으로 박싱을 해줍니다.다운캐스팅
out.println("abcde : " + intValue); //출력

Object obj2 = session.getAttribute("feed");
String str2 = (String)obj2;//downcasting
out.println("feed : " + str2);
%>
<br />
<%
out.print("=============================<br/>");

String sName;
String sValue;

//getAttributeNames()의 반환값은 Enumeration<String> 열거형 제네릭 타입이다.
//여기서는 String만 받도록 제네릭 타입을 설정했다.
//getAttributeNames()은 세션의 설정되어있는 모든 Name값을 다 얻어오는 것이다.
Enumeration<String> en = session.getAttributeNames();

//가져올 데이터가 있느냐?
while(en.hasMoreElements()) {
sName = en.nextElement(); //가져와라.
sValue = session.getAttribute(sName).toString();
out.println("sName : " + sName + "<br/>");
out.println("sValue : " + sValue + "<br/>");
}

out.print("=============================<br/>");
//sessionID는 웹브라우저 하나당 생기는 유니크한 값이다.물론 서버에서 생성해준다.
String sessionID = session.getId();
out.println("sessionID : " + sessionID + "<br/>");

//session의 유효시간은 기본적으로 30분이다.
//설정을 바꾸고 싶다면 tomcat8.5\conf폴더에 web.xml을 노트패드로 열어서
//session부분의 값을 변경하면 된다.
int sessionInterval = session.getMaxInactiveInterval();
out.println("세션 유효시간(초) : " + sessionInterval);
/* C:\apache-tomcat-8.5.61\conf에 가서 web.xml에서 session을
검색하면 session timeout 시간을 설정할 수있다. */

out.print("<br/>=============================<br/>");
//abcde세션의 특정한 값을 삭제하는 코드이다.
//session.removeAttribute("abcde");

Enumeration<String> en1 = session.getAttributeNames();

//가져올 데이터가 있느냐?
while(en1.hasMoreElements()) {
sName = en1.nextElement(); //가져와라.
sValue = session.getAttribute(sName).toString();
out.println("sName : " + sName + "<br/>");
out.println("sValue : " + sValue + "<br/>");
}
out.print("<br/>=============================<br/>");

//세션의 모든 값을 지운다.
session.invalidate();

//유효한 세션id가 있느냐?
if(request.isRequestedSessionIdValid()) {
out.print("session valid");
}
else { //없으면 출력
out.print("session invalid");
}
%>
</body>
</html>

=================================================================

'JSP' 카테고리의 다른 글

forward태그, param태그  (0) 2022.12.06
폼태그와 포워드  (0) 2022.12.06
예외 테스트  (0) 2022.12.05
쿠키 만들기  (0) 2022.12.05
JSP 세션 로그인  (0) 2022.12.05