login.jsp 복사해서 join.jsp 만들기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<link rel="stylesheet" href="css/bootstrap.min.css" />
<title>로그인 페이지</title>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<a class="navbar-brand" href="login.jsp">JSP 게시판</a>
<button class="navbar-toggler" type="button" data-toggle="collapse"
data-target="#navbarNav" aria-controls="navbarNav"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<!-- 왼쪽 메뉴 리스트 -->
<ul class="navbar-nav">
<li class="nav-item active"><a class="nav-link" href="main.jsp">메인</a>
</li>
<li class="nav-item"><a class="nav-link" href="#">게시판</a></li>
</ul>
<!-- 오른쪽 메뉴 리스트 -->
<ul class="navbar-nav ml-auto">
<li class="nav-item dropdown"><a
class="nav-link dropdown-toggle" href="#" id="Dropdown"
role="button" data-toggle="dropdown" aria-haspopup="true"
aria-expanded="false"> 접속하기 </a>
<div class="dropdown-menu" aria-labelledby="Dropdown">
<a class="dropdown-item active" href="login.jsp">로그인</a> <a
class="dropdown-item" href="join.jsp">가입하기</a>
</div></li>
</ul>
</div>
</nav>
<!--회원가입 화면 -->
<div class="container">
<div class="row">
<div class="col-lg-5 col-md-7 mx-auto">
<div class="bg-light p-5 mt-5">
<form action="loginAction.jsp" method="post">
<h3 class="text-center mb-3">회원가입 화면</h3>
<input type="text" class="form-control mb-3" name="userID"
placeholder="아이디" minlength="4" maxlength="20" required>
<input type="password" class="form-control mb-3" name="userPassword"
placeholder="패스워드" minlength="4" maxlength="20" required>
<input type="text" class="form-control mb-3" placeholder="이름"
name="userName" maxlength="20">
<div class="text-center">
<div class="btn-group btn-group-toggle mb-3"
data-toggle="buttons">
<label class="btn btn-success active"> <input
type="radio" name="userGender" value="남성" autocomplete="off"
checked> 남성
</label> <label class="btn btn-success"> <input type="radio"
name="userGender" value="여성" autocomplete="off"> 여성
</label>
</div>
</div>
<input type="email" class="form-control mb-3" name="userEmail"
placeholder="이메일" maxlength="50"> <input type="submit"
class="btn btn-primary form-control mb-3" value="가입하기">
</form>
</div>
</div>
</div>
</div>
<!-- 부트스트랩 제이쿼리,번들 -->
<script src="js/jquery-3.7.1.min.js"></script>
<script src="js/bootstrap.bundle.min.js"></script>
</body>
</html>
***input
minlength="4" maxlength="20" 4자이상 20이하
테스트
UserDAO.java 에서 회원가입 메소드 추가
//회원가입 메소드
public int join(User user) {
String SQL = "insert into user values ( ?, ?, ?, ?, ?)";
try {
pstmt = conn.prepareStatement(SQL);
pstmt.setString(1, user.getUserID());
pstmt.setString(2, user.getUserPassword());
pstmt.setString(3, user.getUserName());
pstmt.setString(4, user.getUserGender());
pstmt.setString(5, user.getUserEmail());
return pstmt.executeUpdate();//DB에 정성적으로 입력 후 1 리턴
} catch (Exception e) {
e.printStackTrace();
} finally {
closeAll();
}
return -1; // 데이터베이스 오류
}
userAction.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="user.UserDAO"%>
<!-- form으로 부터 전달된 값을 User객체의 프로퍼티(필드변수)에 설정
input 태그의 name과 자바빈의 프로퍼티명과 동일한 것에 대응-->
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="user" class="user.User" scope="page" />
<jsp:setProperty name="user" property="*" />
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP 게시판 웹 사이트</title>
</head>
<body>
<%
if (user.getUserID() == null || user.getUserPassword() == null || user.getUserName() == null
|| user.getUserGender() == null || user.getUserEmail() == null) {
out.println("<script>");
out.println("alert('입력이 안 된 사항이 있습니다.')");
out.println("history.back()"); //돌아가기
out.println("</script>");
} else {
UserDAO userDAO = new UserDAO();
int result = userDAO.join(user);
if (result == -1) {
out.println("<script>");
out.println("alert('이미 존재하는 아이디입니다..')");
out.println("history.back()");
out.println("</script>");
} else {
session.setAttribute("userID", user.getUserID());
out.println("<script>");
out.println("location.href = 'main.jsp'");
out.println("</script>");
}
}
%>
</body>
</html>
테스트하기
가입하기 누르면 main.jsp로 이동
데이터 베이스 확인
userGender의 경우 코드를 확인해 보면 radio 타입임 //성별을 선택하면 value값이 넘어가게 됨
loginAction.jsp 수정
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="user.UserDAO"%>
<!-- form으로 부터 전달된 값을 User객체의 프로퍼티(필드변수)에 설정
input 태그의 name과 자바빈의 프로퍼티명과 동일한 것에 대응-->
<%
request.setCharacterEncoding("UTF-8");
%>
<jsp:useBean id="user" class="user.User" scope="page" />
<jsp:setProperty name="user" property="userID" />
<jsp:setProperty name="user" property="userPassword" />
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP 게시판 웹 사이트</title>
</head>
<body>
<%
//이미 세션에 로그인 정보가 있으면 다시 로그인 할 필요가 없음
String userID = null;
if (session.getAttribute("userID") != null) {
userID = (String) session.getAttribute("userID");
}
if (userID != null) {
out.println("<script>");
out.println("alert('이미 로그인이 되어있습니다.')");
out.println("location.href = 'main.jsp'");
out.println("</script>");
}
UserDAO userDAO = new UserDAO();
int result = userDAO.login(user.getUserID(), user.getUserPassword());
if (result == 1) {
session.setAttribute("userID", user.getUserID());//세션에 추가
out.println("<script>");
out.println("location.href = 'main.jsp'");
out.println("</script>");
} else if (result == 0) {
out.println("<script>");
out.println("alert('비밀번호가 틀립니다.')");
out.println("history.back()");
out.println("</script>");
} else if (result == -1) {
out.println("<script>");
out.println("alert('존재하지 않는 아이디입니다.')");
out.println("history.back()");
out.println("</script>");
} else if (result == -2) {
out.println("<script>");
out.println("alert('데이터베이스 오류가 발생했습니다.')");
out.println("history.back()");
out.println("</script>");
}
%>
</body>
</html>
이미 로그인 됐을 때 로그인 시도 시
login.jsp 와 join.jsp nav에 로그아웃 추가
<div class="dropdown-menu" aria-labelledby="Dropdown">
<a class="dropdown-item active" href="login.jsp">로그인</a>
<a class="dropdown-item" href="join.jsp">가입하기</a>
<a class="dropdown-item" href="logoutAction.jsp">로그아웃</a>
</div>
logoutAction.jsp 생성
<%
session.invalidate();
%>
<script>
location.href = 'login.jsp';
</script>
'BACKEND > Jsp' 카테고리의 다른 글
게시판 만들기 4 -페이징, 게시글 상세보기 (0) | 2023.10.12 |
---|---|
게시판 만들기 3 - 메인 페이지 ,게시판 ,글쓰기, 게시판 출력 (0) | 2023.10.11 |
게시판 만들기-1( db연결확인 ~ 로그인 ) (0) | 2023.10.10 |
북마켓 프로젝트 10 (0) | 2023.09.27 |
북마켓 프로젝트 9 (0) | 2023.09.26 |