<%@ 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>
<form action="join_db.jsp" name="joinForm" method="post" id="joinForm">
<p id ="text">사용할 수 있는 아이디입니다.</p>
<p>
<label>아이디<input type="text" name="userid" id="userid"></label>
<input type="button" value="중복확인" onclick="">
</p>
<p>
<label>비밀번호 <input type = "password" name="userpw" id="userpw"></label>
</p>
<p>
<label>비밀번호 확인 <input type = "password" name="userpw_re" id="userpw_re"></label>
</p>
<p>
<label>이름 <input type="text" name="username" id="username"></label>
</p>
<p>
성별<br>
<label>남자 <input type = "radio" name="usergender" id="usergender" value="M" checked></label>
<label>여자 <input type = "radio" name="usergender" id="usergender" value="W" checked></label>
</p>
<p>
<label>핸드폰 번호 <input type="text" name="userphone" id="userphone"></label>
</p>
<p>
우편번호
</p>
<p>
주소
</p>
<p>
상세주소
</p>
<p>
<input type="button" value="가입완료" onclick="sendit()">
</p>
</form>
</body>
<script src ="user.js"></script>
</html>
회원가입 폼
function sendit() {
let frm = document.getElementById("joinForm");
let idTag = document.getElementById("userid");
let pwTag = document.getElementById("userpw");
let cpTag = document.getElementById("userpw_re");
let nameTag = document.getElementById("username");
let phoneTag = document.getElementById("userphone");
let idck = /^[a-zA-Z0-9]*$/;
let nameck = /^[ㄱ-ㅎ가-힣0-9]*$/;
let phoneck = /^[0-9]*$/;
// 아이디
if(idTag.value==""){
alert("아이디를 입력해주세요");
idTag.focus();
return false;
}
if(!(5 <= idTag.value.length && idTag.value.length<=16)){
alert("아이디는 6자 이상 16자리 이하로 만들어주세요");
idTag.focus();
return false;
}
if(!idck.test(idTag.value)){
alert("아이디는 숫자와 영어로만 이루어져야합니다.")
idTag.focus();
return false;
}
// 비밀번호
if(pwTag.value==""){
alert("비밀번호를 입력해주세요");
pwTag.focus();
return false;
}
if(!(8 <= pwTag.value.length)){
alert("비밀번호는 8자이상으로 만들어주세요");
pwTag.focus();
return false;
}
// 비밀번호 확인
if(cpTag.value==""){
alert("비밀번호를 확인해주세요");
cpTag.focus();
return false;
}
if(pwTag.value!=cpTag.value){
alert("비밀번호 동일하지 않습니다.");
cpTag.focus();
return false;
}
// 이름 확인
if(nameTag.value==""){
alert("이름을 입력해주세요");
nameTag.focus();
return false;
}
if(!nameck.test(nameTag.value)){
alert("이름은 한글로만 입력해주세요");
nameTag.focus();
return false;
}
// 핸드폰 번호 확인
if(phoneTag.value==""){
alert("핸드폰 번호를 입력해주세요");
phoneTag.focus();
return false;
}
if(!phoneck.test(phoneTag.value)){
alert("숫자만 입력해주세요");
phoneTag.focus();
return false;
}
frm.submit();
}
package com.koreait.web.beans;
public class UserBean {
private String userid;
private String userpw;
private String username;
private String usergender;
private String userphone;
// getter setter 만들기
public String getUserid() {
return userid;
}
public void setUserid(String userid) {
this.userid = userid;
}
public String getUserpw() {
return userpw;
}
public void setUserpw(String userpw) {
this.userpw = userpw;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getUsergender() {
return usergender;
}
public void setUsergender(String usergender) {
this.usergender = usergender;
}
public String getUserphone() {
return userphone;
}
public void setUserphone(String userphone) {
this.userphone = userphone;
}
}
package com.koreait.web.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConnection {
public static Connection getConnection() {
Connection conn = null;
try {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
// 디비 아이디 패스워드
String user = "***";
String password = "***";
Class.forName(driver);
System.out.println("jdbc Driver 로딩 성공!");
conn = DriverManager.getConnection(url, user, password);
System.out.println("오라클 연결 성공!!");
}catch(ClassNotFoundException e) {
e.printStackTrace();
System.out.println("드라이버 로딩 실패");
}catch (SQLException e) {
e.printStackTrace();
System.out.println("DB접속 오류");
}catch(Exception e) {
e.printStackTrace();
System.out.println("알수 없는 에러 발생");
}
return conn;
}
}
package com.koreait.web.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.koreait.web.beans.UserBean;
public class UserDAO {
Connection conn;
PreparedStatement pstm;
ResultSet rs;
public boolean join(UserBean user) {
boolean result = false;
String sql = "INSERT INTO TBL_USER VALUES(?,?,?,?,?)";
int cnt = 0;
try {
conn=DBConnection.getConnection();
pstm=conn.prepareStatement(sql);
pstm.setString(1, user.getUserid());
pstm.setString(2, user.getUserpw());
pstm.setString(3, user.getUsername());
pstm.setString(4, user.getUsergender());
pstm.setString(5, user.getUserphone());
cnt = pstm.executeUpdate();
}catch(Exception e) {
e.printStackTrace();
}
if(cnt!=0) {
result = true;
}else {
result = false;
}
return result;
}
<%@page import="com.koreait.web.dao.UserDAO"%>
<%@ 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>
<!-- 객체 생성 -->
<jsp:useBean id="user" class="com.koreait.web.beans.UserBean"/>
<!-- *별 처리하면 한번에 해결가능 -->
<%-- <jsp:setProperty property="userid" name="user"/> --%>
<%-- <jsp:setProperty property="userpw" name="user"/> --%>
<%-- <jsp:setProperty property="username" name="user"/> --%>
<!-- 외부에서 전달된 name속성과 필드의 이름이 같으면 value가 자동세팅 -->
<jsp:setProperty property="*" name="user"/>
<%
// 객체받아오기
UserDAO udao = new UserDAO();
if(udao.join(user)){
//가입 성공
%>
<script>
alert('회원가입 성공');
// 회원가입 성공시 로그인 페이지로 이동
location.href = "loginview.jsp";
</script>
<%
}else{
//가입 실패
%>
<script>
alert('회원 가입 실패');
// 회원가입 실패시 다시 회원가입 뷰로 이동
location.href = "join_view.jsp";
</script>
<%
}
%>
</body>
</html>
유효성 검사에 맞게 테스트할 준비.
회원가입이 성공했고 로그인 페이지로 넘어가는 것을 볼 수 있다. 이제 디비에 저장되었을지 확인해본다.
DB로 잘넘어왔다. 다음으로 로그인을 알아보겠다.