[JSP] 세션
세션(session)
- 서버 세션을 사용하면 클라이언트의 상태를 저장할 수 있음
- 쿠키와의 차이점은 세션은 웹 브라우저가 아닌 서버에 값을 저장한다는 점
- 웹 컨테이너에서 클라이언트의 정보를 보관 및 상태를 유지할 때 사용
- 로그인한 사용자 정보를 유지하기 위한 목적
- 클라이언트마다 세션이 생성
- 웹 브라우저에 정보 보관: 쿠키
- 웹 컨테이너에 정보 보관: 세션
세션 연결예제
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<title>Session</title>
</head>
<body>
<form method="post" action="session01_process.jsp">
<p>아이디: <input type="text" name="id" /></p>
<p>비밀번호: <input type="password" name="passwd" /></p>
<p><input type="submit" value="전송" /></p>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<title>Session</title>
</head>
<body>
<%
String user_id = request.getParameter("id");
String user_pw = request.getParameter("passwd");
if(user_id.equals("admin")&&user_pw.equals("admin1234")){
session.setAttribute("userID", user_id);
session.setAttribute("userPW", user_pw);
out.print("세션설정성공<br>");
out.print(user_id +"님 환영하무니다");
}else{
out.print("세션 설정 실패이무니다");
}
%>
</body>
</html>
-
세션 정보확인하기
- session.getId() : 세션id 정보확인
- session.getCreationTime(): 세션 생성시간
<%@page import="java.util.Date"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<title>세션정보</title>
</head>
<body>
<%
// long타입의 시간 값을 저장하기 위해 사용
Date time = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
%>
세션 id : <%=session.getId() %><br>
<%
// 세션의 생성 시간을 Date 객체인 time에 저장
time.setTime(session.getCreationTime());
%>
세션 생성 시간: <%=formatter.format(time) %><br>
<%
// 세션의 마지막 접근 시간(long) -> Date 타입으로 세팅
time.setTime(session.getLastAccessedTime());
%>
최근접근시간: <%=formatter.format(time) %><br>
</body>
</html>
- 세션에 정보 저장하기 예제
- set
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
session.setAttribute("MEMBERID", "ddit");
session.setAttribute("NAME", "개똥이");
%>
<!DOCTYPE html>
<html>
<head>
<title>세션에 정보저장</title>
</head>
<body>
세션에 정보를 저장했습니다. <br>
<a href="getMemberInfo.jsp">저장된 세션의 정보보기</a>
</body>
</html>
- get
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
// object라 형변환 필요
String memberId = (String)session.getAttribute("MEMBERID"); //ddit
String name = (String)session.getAttribute("NAME");
%>
<!DOCTYPE html>
<html>
<head>
<title>저장된 세션의 정보확인</title>
</head>
<body>
회원id: <%=memberId %><br>
회원이름: <%=name %><br>
<a href="/setMemberInfo.jsp">되돌아가기</a>
</body>
</html>
- 세션 종료
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
session.invalidate();
%>
<!DOCTYPE html>
<html>
<head>
<title>세션 종료</title>
</head>
<body>
세션을 종료하였습니다.
</body>
</html>
세션 예제
- session.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<form action="session_process.jsp" method="post">
<p>아이디: <input type="text" name="id"></p>
<p>비밀번호: <input type="password" name="pass"></p>
<input type="submit" value="전송">
</form>
</body>
</html>
- session_process.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
String id = request.getParameter("id");
String pass = request.getParameter("pass");
if(id.equals("admin")&&pass.equals("admin1234")){
session.setAttribute("userID", id);
response.sendRedirect("welcome.jsp");
}else{
out.print("응 아니야");
}
%>
</body>
</html>
- welcome.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
String id = (String)session.getAttribute("userID");
if(id==null){
response.sendRedirect("session_out.jsp");
}
out.print(id+"님 반갑습니다. <br>");
%>
<a href="session_out.jsp" >로그아웃</a>
</body>
</html>
- session_out.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
session.invalidate();
response.sendRedirect("session.jsp");
%>
<!DOCTYPE html>
<html>
<head>
<title>세션 종료</title>
</head>
<body>
</body>
</html>
Author And Source
이 문제에 관하여([JSP] 세션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@vgo_dongv/JSP-세션저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)