session_login

Mia Lee·2021년 12월 17일
0

JSP

목록 보기
11/22


<%@ 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>
	<h1>로그인</h1>
	<!-- http://localhost:8080/StudyJSP/jsp4/session_login/session_login_pro.jsp -->
	<form action="session_login_pro.jsp" method="post">
		<h3>아이디 : <input type="text" name="id"></h3>
		<h3>패스워드 : <input type="password" name="passwd"></h3>
		<input type="submit" value="로그인">
	</form>
</body>
</html>












<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
// session_login_form.jsp 페이지로부터 전달받은 파라미터 가져오기
// => 내장객체 request 객체의 getParameter() 메서드 사용
String id = request.getParameter("id"); // "id" 파라미터 가져오기
String passwd = request.getParameter("passwd"); // "passwd" 파라미터 가져오기

// 세션 객체에 아이디를 저장하기
// => 세션 객체에 저장할 속성명 : "sessionId"
// session.setAttribute("sessionId", id);

// "session_login_main.jsp" 페이지로 이동
// response.sendRedirect("session_login_main.jsp");

// --------------------------------------------------------------------------------
// 로그인 성공/실패 여부를 확인하는 작업이 필요 => 나중에 배움
// 임시로, 데이터베이스로부터 로그인에 필요한 아이디, 패스워드를 조회했다고 가정
String dbId = "admin";
String dbPasswd = "1234";

// 폼파라미터로 가져온 아이디와 패스워드를 데이터베이스로부터 가져온 아이디/패스워드와 비교
// 1. 입력받은 아이디(id) 와 DB 에 저장된 아이디(dbId) 를 비교하여 같은지 판별
// => 같을 경우 : 아이디가 존재하므로 패스워드 비교
// => 다를 경우 : 아이디가 없으므로 오류 메세지 출력 후 이전페이지로 돌아가기
if(id.equals(dbId)) { // 아이디가 일치할 경우(= 데이터베이스에 아이디가 존재할 경우)
	// 2. 입력받은 패스워드(passwd) 와 DB 에 저장된 패스워드(dbPasswd) 를 비교하여 같은지 판별
	// => 같을 경우 : 로그인 성공이므로 세션 객체에 "sessionId" 로 로그인 성공한 아이디 저장하고
	//                session_login_main.jsp 페이지로 이동
	// => 다를 경우 : 로그인 실패이므로 오류 메세지 출력 후 이전페이지로 돌아가기
	if(passwd.equals(dbPasswd)) { // 패스워드 일치 = 로그인 성공
		// 세션 객체에 "sessionId" 속성으로 로그인 성공한 아이디 저장 후
		// session_login_main.jsp 페이지로 이동하기(자바 방식으로 이동)
		session.setAttribute("sessionId", id);
		response.sendRedirect("session_login_main.jsp");
	} else { // 패스워드 불일치 = 로그인 실패
		// 자바스크립트를 사용하여 "패스워드 틀림" 메세지 출력 후 이전페이지로 돌아가기
		%>
		<script>
			alert("패스워드 틀림");
			history.back();
		</script>
		<%
	}
} else { // 아이디가 일치하지 않을 경우(= 데이터베이스에 아이디가 존재하지 않을 경우
	// 자바스크립트를 사용하여 "존재하지 않는 아이디" 메세지 출력 후 이전페이지로 돌아가기
	%>
	<script>
		alert("존재하지 않는 아이디");
		history.back();
	</script>
	<%
}
// --------------------------------------------------------------------------------
%>    


<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
// 세션 객체에 저장된 "sessionId" 속성값을 가져와서 String 타입 변수 sId 에 저장
// => getAttribute() 메서드 리턴타입이 Object 타입이므로 String 타입 변수에 저장하려면
//    형변환 연산자 (String) 를 사용하여 String 타입으로 강제 형변환을 수행해야한다!
String sId = (String)session.getAttribute("sessionId");
%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div align="right">
	<!-- 로그인 성공(= 세션 아이디가 존재할 경우), 실패에 따라 다른 작업 수행 -->
	<%if(sId == null) { // 세션 아이디가 존재하지 않을 경우 %>
		<!-- 만약, 세션아이디(sId)가 없을 경우(= null 값이 저장되어 있을 경우) -->
		<!-- "로그인" 하이퍼링크를 통해 session_login_form.jsp 페이지로 이동  -->
		<h5>
			<a href="session_login_form.jsp">로그인</a> | <a href="session_join_form.jsp">회원가입</a>
		</h5>
	<%} else { // 세션 아이디가 존재할 경우 %>
		<!-- 세션 아이디를 출력하고, "로그아웃" 하이퍼 링크를 통해 session_logout.jsp 로 이동 -->
		<h5>
			<%=sId %> 님 | <a href="session_logout.jsp">로그아웃</a>
		</h5>
	<%} %>
	</div>
	<h1>메인화면</h1>
</body>
</html>



logout

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
// 세션 초기화
session.invalidate();

// "session_login_main.jsp" 로 이동
response.sendRedirect("session_login_main.jsp");

%>    









0개의 댓글