[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