[JSP] Session이란?
@욕심쟁이
·2020. 8. 14. 11:50
반응형
Session 이란?
- 값을 유지할때 사용(서버에 부하)
- 클라이언트(사용자)별 서버에 저장되는 정보
- 클라이언트(사용자)와 서버간의 연결상태를 유지하기 위한 역할
- HTTP프로토콜의 특성은 연결되면 요청.응답을 한뒤에 바로 연결이 끊어짐
- 세션 ID부여하여 클라이언트를 구분하는 정보를 저장
→ 클라이언트에서 서버에 연결요청하고 서버에서 응답과 세션ID추가를 하며
클라이언트의 쿠키영역에 세션ID를 저장 후
다시 서버에 재요청시 세션ID를 가지고 요청하면
서버에서 해당세션ID를 가지고 클라이언트를 구분
Session 객체의 메소드
함수명 | 정의 |
---|---|
session.setAttribute("세션이름", 값) | 세션에 저장 |
session.getAttribute("세션이름", 값) | 세션 조회 |
session.invalidate(); | 세션전체삭제 |
session.removeAttribute("세션이름"); | 세션하나삭제 |
session.getId(); | 세션의 고유 ID값 반환 |
setMaxInactuvelnterval(int seconds) | 세션의 유지시간을 설정 |
getMaxInactuvelnterval(int seconds) | 세션의 유지시간을 반환 |
예시)
1. sessionLoginForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>WebContent/Study/jsp/sessionLoginForm.jsp</title>
</head>
<body>
<h1>WebContent/Study/jsp2/sessionLoginForm.jsp</h1>
<form action="sessionLoginPro.jsp" method="post">
아이디 : <input type="text" name="id"> <br>
비밀번호 : <input type="password" name="pw"><br>
<input type="submit" value="로그인">
</form>
</body>
</html>
2. sessionLoginPro.jsp
<%@page import="com.sun.xml.internal.bind.v2.runtime.Location"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>WebContent/test/jsp/sessionLoginPro.jsp</title>
</head>
<body>
<h1>WebContent/test/jsp/sessionLoginPro.jsp</h1>
<%
//id, pass 파라미터
String id = request.getParameter("id");
String pw = request.getParameter("pw");
%>
폼에서 가져온 아이디 : <%=id %> <br>
폼에서 가져온 비밀번호 : <%=pw %> <br>
<%
//데이터베이스에 저장된 dbid="admin", dbpw="p123"
String dbid="admin";
String dbpw="p123";
%>
디비에서 가져온 아이디 : <%=dbid %> <br>
디비에서 가져온 비밀번호 : <%=dbpw %> <br>
<%
if(id.equals(dbid)){
out.println("아이디 일치");
if(pw.equals(dbpw)){
out.println("비밀번호일치");
//세션값 설정 이름, 값 "id",id, 로그인 정보 유지
session.setAttribute("id", id);
session.setAttribute("pw", pw);
//sessionLoginMain.jsp이동
response.sendRedirect("sessionLoginMain.jsp");
}
else{
out.println("비밀번호불일치");
}
}else{
out.println("아이디 불일치");
}
%>
</body>
</html>
3. sessionLoginMain.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>WebContent/Study/test/sessionLoginMain.jsp</title>
</head>
<body>
<h1>WebContent/Study/test/sessionLoginMain.jsp</h1>
<%=session.getAttribute("id") %> 님 로그인 하셨습니다.<br>
<input type="button" value="로그아웃" onclick="location.href='sessionLogout.jsp'">
</body>
</html>
4. sessionLogout.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>WebContent/test/jsp/sessionLogout.jsp</title>
</head>
<body>
<h1>WebContent/test/jsp/sessionLogout.jsp</h1>
<%
session.invalidate();
%>
<script type="text/javascript">
alert("로그아웃되었습니다.");
location.href="sessionLoginForm.jsp";
</script>
</body>
</html>
반응형
'IT > JSP' 카테고리의 다른 글
[JSP] 회원가입 (로그인/로그아웃/정보조회/정보수정/정보삭제/모든정보목록) (0) | 2020.08.25 |
---|---|
[JSP] Cookie란? (0) | 2020.08.14 |
[JSP] Include태그 (0) | 2020.08.13 |
[JSP] 링크이동 (0) | 2020.08.13 |
[JSP] JSP태그, 문법 (0) | 2020.08.03 |