본문 바로가기
  • 마침표 보다 쉼표를 나타내자
국비교육 [完]/WebMarket

5. 회원 가입

by Y코더 2023. 3. 2.
728x90

로그인을 클릭해서 페이지에 넘어 왔을때

버튼 옆에다 회원가입 버튼을 하나 더 만들었다.

 

추가된 파일은 이러하다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="utils.CookieManager" %>
<%
   String loginId = CookieManager.readCookie(request, "loginId");
   //CookieManager.java에서 static으로 Cookie객체가 생성되기 때문에
   //import해온 IdSaveMain.jsp에서는 새로 객체를 생성할 필요가 없다.

   String cookieCheck = "";
   if(!loginId.equals("")){
      cookieCheck = "checked";
   }
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
   <h2>지금 당장 로그인!!</h2>
   <form action="./process/IdSaveProcess.jsp" method="post">
   	  <br/>
      회원님을 기억할까요?
   <input type="checkbox" name="save_check" value="Y" <%= cookieCheck %> />
      <br/>
      <br/>
      <input class="form-control form-control-lg" type="text" name="user_id" value="<%= loginId %>" placeholder="아이디를 입력해 주세요!!" aria-label=".form-control-lg example">
      <br/>
      <br/>
      <input class="form-control form-control-lg" type="text" name="user_pw" placeholder="비밀번호를 입력해 주세요!!" aria-label=".form-control-lg example">
      <br/>
      <br/>
       <button type="submit" class="btn btn-success">로그인하기</button>
       <button type="button" class="btn btn-primary" onclick="location='./signUp/addUser.jsp'">회원가입</button>
   </form>
</body>
</html>

 

여기서 문제가 생기는데

제작 했을때 상대 경로로 안해 뒀었다.

 

메뉴 문제이다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<nav class="navbar navbar-expand  navbar-dark bg-dark">
	<div class="container">
		<div class="navbar-header">
			<a class="navbar-brand" href="/WebMarketY/Web/Welcome.jsp">Home</a>
			<a class="navbar-brand" href="/WebMarketY/Web/ProductGuest.jsp">Product</a>
		</div>
		<div class="navbar-header">
			<button type="button" class="btn btn-info" onclick="location='LoginDisplay.jsp'">로그인</button>
			<button type="button" class="btn btn-info" onclick="location='Welcome.jsp'">로그아웃</button>
		</div>
	</div>
</nav>

항상 그 위치에 있는 파일을 선택 해야 므로

/ 를 사용해서 위치를 정확하게 알려준다면

어디서든 그 화면을 띄울 것이다.

 

 

회원가입 페이지를 만들어 보자

코드는 이러하다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%@ include file="../menu.jsp"%>
	<%!String greeting = "당장 참여 하세요!!";%>
	<div class="jumbotron">
		<div class="container">
			<h1 class="display-3">
				<%=greeting%>
			</h1>
		</div>
	</div>	
	<form action="ExeUpdate.jsp" method="get">
	<h2>지금 당장 가입!!</h2>
      <br/>
      <br/>
      <input class="form-control form-control-lg" type="text" name="ID"  placeholder="아이디를 입력해 주세요!!" aria-label=".form-control-lg example">
      <br/>
      <br/>
      <input class="form-control form-control-lg" type="text" name="PASS" placeholder="비밀번호를 입력해 주세요!!" aria-label=".form-control-lg example">
      <br/>
      <br/>
      <input class="form-control form-control-lg" type="text" name="NAME" placeholder="닉네임을 입력해 주세요!!" aria-label=".form-control-lg example">
      <br/>
      <br/>
      <button type="submit" class="btn btn-danger">가입은 못참지</button>
	</form>
</body>
</html>

 

 

사용자가 입력한 값을 받아 주어야한다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.sql.PreparedStatement" %>
<%@ page import ="java.sql.Connection" %>
<%@ page import = "common.JDBConnect" %>
<%@ page import="utils.JSFunction" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
   <%
      JDBConnect jdbc = new JDBConnect();
   	  request.setCharacterEncoding("UTF-8");
   	  
      String id = request.getParameter("ID");
      String pass = request.getParameter("PASS");
      String name = request.getParameter("NAME");
      
      try {
    	  String sql = "INSERT INTO member VALUES(?, ?, ?, sysdate)";
          PreparedStatement pstmt = jdbc.con.prepareStatement(sql);
          pstmt.setString(1, id);
          pstmt.setString(2, pass);
          pstmt.setString(3, name);
          
          int inResult = pstmt.executeUpdate();
          
          if(inResult == 1) {
        	  response.sendRedirect("congrat.jsp");
        	  jdbc.close();
          }
      } catch(Exception e) {
    	  response.sendRedirect("addUser.jsp");
    	  JSFunction.alertBack("옳지 않은 정보 다시 가입", out);
    	  e.printStackTrace();
      }
   %>
</body>
</html>

 

하나라도 입력을 안하거나 잘못됬다면,

회원가입 페이지로 바로 보내 버린다.

 

 

회원가입이 성공적으로 완료 되었을 때

사용자에게 축하의 메세지가 담겨있는 페이지를 제작해보자.

코드는 이러하다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<meta charset="UTF-8">
<title>Insert title here</title>
<style>
	#botton1{
		margin: auto;
		text-align: center;
	}
</style>
</head>
<body>
	<%@ include file="../menu.jsp"%>
	<%!String greeting = "회원 가입 완료!!";
	String tagline = "성공적으로 가입 완료 !!";%>
	<div class="jumbotron">
		<div class="container">
			<h1 class="display-3">
				<%=greeting%>
			</h1>
		</div>
	</div>
		<div class="container">
			<div class="text-center">
			<h3>
				<%=tagline%>
				<br/>
				<br/>
				<button type="button" class="btn btn-info" id="botton1" onclick="location='../Welcome.jsp'">홈으로 가기</button>
			</h3>
		</div>
	</div>
	<br/>
	<br/>	
	<%@ include file="../footer/footer.jsp"%>		
</body>
</html>

 

 

728x90