JSP

JSP 세션

테라시아 2024. 11. 30. 14:59

세션(Session)
    내장 객체로서 브라우저마다 한 개씩 존재하고
    고유한 세션 아이디(SessionID) 생성 후 정보 추출

    장점
    - JSP 등 언어에서만 접근 가능하므로 보안성이 좋음
    - 저장 용량 한계가 거의 없음

    단점
    - 서버에 데이터를 저장하므로 서버에 부하 위험

 

☆ Code

 

★ session

	<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session Login</title>
</head>
<body>
<%
	String userid = "";
	if(session.getAttribute("userid") != null){
		System.out.println("[getSession] Login OK");
		userid = (String)session.getAttribute("userid");
		
		// 환영 인사
%>
		<h1><%=userid%>님 반갑습니다.</h1>
		<h1>회비는 29만원입니다.</h1>
<%
	}
	else {
%>
		<form name="loginForm" method="post" action="11_session_ok.jsp">
			<fieldset>
				<legend>Login Info.</legend>
				id : <input type="text" name="userid"><br>
				pw : <input type="password" name="passwd"><br>
				<input type="button" value="login" onclick="sendIt()">
			</fieldset>
		</form>
<%
	}
%>
</body>
<script>
	var frm = document.loginForm;
	
	function sendIt(){
		if(frm.userid.value == ''){
			alert("넌 이름도 없냐?");
			return false;
		}
		
		if(frm.passwd.value == ''){
			alert("니 정보 다 샌다 괜찮냐");
			return false;
		}
		
		frm.submit();
	}
</script>
</html>

 

★ session_ok

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Session Login</title>
</head>
<body>
<%
	String userid = request.getParameter("userid");
	String passwd = request.getParameter("passwd");
	
	// userid : Apple, passwd : 111 인 것만 인정
	if(userid.equals("Apple") && passwd.equals("111")){
		// session에 저장
		session.setAttribute("userid", userid);
		response.sendRedirect("11_session.jsp");
	}
	else {
%>
		<script>
			alert("너 누구야");
			location.href = "11_session.jsp";
		</script>
<%
	}
%>
</body>
</html>