▶ 세션(Session)
: 브라우저가 종료되기 전까지 클라이언트의 정보를 유지하게 해주는 기술
: 사용자 정보 파일을 서버 측에서 관리
▶ 세션(Session) 동작방식
클라이언트가 페이지요청(request)
해당 브라우저(클라이언트)에 유일한 ID(Session ID)를 부여
응답헤더에 Session ID를 포함해서 전송
쿠키에 Session ID 저장
이후 서버에 요청할 때 Session ID가 담긴 쿠키를 요청헤더에 추가하여 요청
Session ID를 확인하고 해당 세션에 관련된 정보를 확인한 후 응답
▶ Session 사용 예
로그인 같이 보안상 중요한 작업을 수행할 때 사용
▶Session 특징
각 client에게 고유 ID 부여
보안 면에서 쿠키보다 우수
사용자가 많아지면 서버 메모리 많이 차지하게 됨
▶Session 예시
<%@ 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>
<%
// 1. session 생성
session.setAttribute("id", "cjy0611");
session.setAttribute("age", "20");
// 내장객체이기 때문에 별도로 생성할 필요가 없다.
// 서버상에 데이터가 저장되기 때문에 응답하면서 다시 되돌려줄 필요가 없다.
%>
<a href = "ex03GetSession.jsp">세션 확인하기</a>
<a href = "ex03AllSession.jsp">모든 세션 확인하기</a>
</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>
<%
// 1. session 정보 가져오기
String id = (String)session.getAttribute("id");
int age = Integer.parseInt((String)session.getAttribute("age"));
//WrapperClass : 기본 자료형을 클래스(객체) 형태로 만든 것
%>
<h1>ID : <%=id %></h1>
<h1>AGE : <%=age %></h1>
</body>
</html>
<%@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>Insert title here</title>
</head>
<body>
<%
// 1. 모든 세션의 이름을 가져오기
Enumeration names= session.getAttributeNames();
// 열거형 --> 가지고 올때 사용하기 편한 메소드들이 기본적으로 설계되어있다.
// --> 객체들을 하나씩 처리하기에 용이함
// 2. 키값에 맞는 데이터를 꺼내오기
// 2-1) 데이터 유무부터 확인
while(names.hasMoreElements()){
// 2-2) 데이터(key, name값) 꺼내오기
String name = (String)names.nextElement();
// 2-3) session안에 있는 정보 가져오기
String data = (String)session.getAttribute(name);
out.print(data+"<br>");
}
%>
</body>
</html>
'JSP' 카테고리의 다른 글
게시판 실습 (MVC) (0) | 2022.05.24 |
---|---|
JSP Servlet JDBC연결- <MVC Pattern> Model2 실습 (0) | 2022.05.12 |
JSP Servlet JDBC연결- <MVC Pattern> Model1 실습 (0) | 2022.05.11 |
JSP Servlet JDBC연결- <MVC Pattern> (0) | 2022.05.11 |
세션(Session) 실습 (0) | 2022.05.09 |