토이프로젝트/ToAnime(만화속으로)

ToAnime(Login)

하뀨뿅 2021. 7. 6. 23:55
728x90
반응형

https://github.com/gkdmssidhd/ToyProject_ToAnime

 

gkdmssidhd/ToyProject_ToAnime

Contribute to gkdmssidhd/ToyProject_ToAnime development by creating an account on GitHub.

github.com

login.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<meta name="viewport" content="width=device-width", initial-scale="1">
		<link rel="stylesheet" href="css/bootstrap.css">
		<!-- 애니메이션 담당할 자바스크립트 제리 워리 특정홈피에서 가져오기 -->
		<script src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
		<!-- 부트스트립에서 기본적으로 제공해주는 js파일도 참조하겠다. -->
		<script src="js/bootstrap.js"></script>
		<title>로그인</title>
	</head>
<body>
	<!-- 내비게이션은 하나의 웹사이트에 전반적인 구성 헤더는 홈페이지의 로고를 담는 영역 -->
	<nav class="navbar navbar-default">
		<div class="navbar-header">
			<button type="button" class="navbar-toggle collapsed"
				data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"
				aria-expanded="false">
				<span class="icon-bar"></span>	
				<span class="icon-bar"></span>	
				<span class="icon-bar"></span>	
			</button>
			<!-- brand는 로고 같은거 -->
			<a class="navbar-brand" href="main.jsp">만화속으로</a>
		</div>
		<!-- 아이디는 위에 데이터타겟이랑 똑같게 해줘야 함. -->
		<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
			<!-- ul -> 하나의 리스트 -->
			<ul class="nav navbar-nav">
				<li><a href="main.jsp">메인</a></li>
				<li><a href="list.jsp">게시판</a></li>			
			</ul>
			<ul class="nav navbar-nav navbar-right">
				<li class="dropdown">
					<a href="3" class="dorpdown-toggle"
						data-toggle="dropdown" role="button" aria-haspopup="true"
						aria-expanded="false">접속하기<span class="caret"></span></a>
					<ul class="dropdown-menu">
						<li class="active"><a href="login.jsp">로그인</a></li>
						<li><a href="join.jsp">회원가입</a></li>
					</ul>
				</li>
			</ul>
		</div>
	</nav>
	<div class="container">
		<div class="col-lg-4"></div>
			<div class="col-lg-4">
				<div class="jumbotron" style="padding-top: 20px;">
					<form method="post" action="loginAction.jsp">
						<h3 style="text-align: center;">로그인</h3>
						<div class="form-group">
							<input type="text" class="form-control" placeholder="아이디" name="peopleID" maxlength="20">
						</div>
						<div class="form-group">
							<input type="password" class="form-control" placeholder="비밀번호" name="peoplePassword" maxlength="20">
						</div>
						<input type="submit" class="btn btn-primary form-control" value="로그인">
					</form>
				</div>
			</div>
		<div class="col-lg-4"></div>
	</div>
</body>
</html>

 

loginAction.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!-- people패키지의 People.Dao클래스를 그대로 가져옴 
실질적으로 사용자가 로그인 시도 하려는걸 처리하는 페이지 -->
<%@ page import="people.PeopleDAO" %>
<%@ page import="java.io.PrintWriter" %>
<%
	request.setCharacterEncoding("UTF-8");
%>

<!-- People를 자바빈즈로 사용/ SCOPE 현재 페이지 안에서만 빈즈가 사용될 수 있게 한다. property 값을 저장할 수 있는 거 -->
<jsp:useBean id="people" class="people.People" scope="page" />
<!-- 로그인 페이지 에서 넘겨준 userID와 비번을 그대로 넣어주는 것 -->
<jsp:setProperty name="people" property="peopleID" />
<jsp:setProperty name="people" property="peoplePassword" />

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>로그인</title>
</head>
	<body>
		<%
		// 이미 로그인 되어있는 사람에게는 회원가입과 로그인 화면에 들어갈 수 없게	
			String peopleID = null;
			// 세션을 확인해서 유저아이디라는 이름으로 세션이 존재하면
			if(session.getAttribute("peopleID") != null) {				
			// peopleID에 해당 세션값을 넣어줄 수 있게 함. userID변수가 자기에게 할당된 세션아이디 담게
			// getAttribute => attribute란 servlet간 공유하는 객체
				peopleID = (String)session.getAttribute("peopleID");
			}
			// peopleID가 null값이 아닌 회원이니까 main으로 보낸다
			if (peopleID != null) {
				PrintWriter script = response.getWriter();
				script.println("<script>");
				script.println("alert('이미 로그인이 되어있습니다.')");
				script.println("location.href = 'main.jsp'");
				script.println("</script>");
			}
			
			PeopleDAO peopleDAO = new PeopleDAO();
			// 가져온 아이디 패스워드가 맞으면
			int result = peopleDAO.login(people.getPeopleID(), people.getPeoplePassword());
			if (result == 1) {
				// 해당 회원 아이디를 세션값에 넣기 로그인한 회원들은 세션으로 관리 구분 한다.
				// 로그인에 성공했을 때 세션을 부여하는 코드
				session.setAttribute("peopleID", people.getPeopleID());
				// 하나의 스크립트 문장 응답으로 내보낼 출력 스트림
				PrintWriter script = response.getWriter();
				// 스크립트 문장을 유동적으로 
				script.println("<script>");
				// 로그인 성공하면 main.jsp로 이동하게
				script.println("location.href = 'main.jsp'");
				script.println("</script>");
			}
			else if (result == 0) {
				PrintWriter script = response.getWriter();
				script.println("<script>");
				script.println("alert('비밀번호가 틀립니다.')");
				// 이전 페이지로 사용자를 돌려보내는거 다시 비번하라고
				script.println("history.back()");
				script.println("</script>");
			}
			else if (result == -1) {
				PrintWriter script = response.getWriter();
				script.println("<script>");
				script.println("alert('존재하지 않는 아이디입니다.')");
				script.println("history.back()");
				script.println("</script>");
			}
			else if (result == -2) {
				PrintWriter script = response.getWriter();
				script.println("<script>");
				script.println("alert('데이터베이스 오류가 발생했습니다.')");
				script.println("history.back()");
				script.println("</script>");
			}
		%>
	</body>
</html>
728x90
반응형

'토이프로젝트 > ToAnime(만화속으로)' 카테고리의 다른 글

ToAnime(index.jsp)  (0) 2021.07.12
ToAnime(logout.jsp)  (0) 2021.07.11
ToAnime(Join)  (0) 2021.07.04
ToAnime(main.jsp)  (0) 2021.07.04
ToAnime(AnimeListTable.sql)  (0) 2021.07.02