반응형
Dynamic Web Project : 10-member
[클라이언트]
Folder : member
JSP File : WebContent/member/writeForm.jsp(수정)
WebContent/member/checkId.jsp
Folder : script
javascript File : WebContent/script/memberScript.js(수정)
Package : member.bean
Class File : src/member.bean/MemberDTO.java(수정없이 그대로 사용) ( DTO : Data Transfer Objecr)
Package : member.dao
Class File : src/member.dao/MemberDAO.java(수정) (DAO : Data Access Object)
<실행 결과>
<작업순서>
1. 10-member/WebContent/script/memberScript.js
function checkWrite(){
if(document.writeForm.name.value == ""){
alert("이름을 입력하세요 ");
document.writeForm.name.focus();
}else if(document.writeForm.id.value == ""){
alert("아이디를 입력하세요 ");
}else if(document.writeForm.pwd.value == ""){
alert("비밀번호를 입력하세요 ");
}else if(document.writeForm.pwd.value != document.writeForm.repwd.value){
alert("비밀번호가 맞지 않습니다.");
}else {
document.writeForm.submit();
}
}
function checkLogin(){
if(document.loginForm.id.value ==""){
alert("아이디를 입력하세요");
document.loginForm.id.focus();
}else if(document.loginForm.pwd.value == ""){
alert("비밀번호를 입력하세요");
}else{
document.loginForm.submit();
}
}
function checkId(){
var sId = document.writeForm.id.value;
if(sId ==""){
alert("먼저 아이디를 입력하세요");
}else {
window.open("checkId.jsp?id=" + sId, "","width = 350 height=100 left=500 top=200")
}
}
2. 10-member/WebContent/member/writeForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page info ="copyright by MIS" %>
<% request.setCharacterEncoding("utf-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>회원가입</title>
<script type="text/javascript"
src="../script/memberScript.js">
</script>
</head>
<body>
<form name = "writeForm" method ="post" action="write.jsp" >
<table border="1">
<tr>
<td width ="70" align="center">이름</td>
<td><input type="text" name="name" placeholder="이름 입력"></td>
</tr>
<tr>
<td width ="70" align="center">아이디</td>
<td>
<input type="text" name="id">
/////////////////////////////////////////////////////////////////////////
<input type="button" value="중복체크" onclick="checkId()">
/////////////////////////////////////////////////////////////////////////
</td>
</tr>
<tr>
<td width ="70" align="center">비밀번호</td>
<td><input type="password" name="pwd" size = "30"></td>
</tr>
<tr>
<td width ="70" align="center">재확인</td>
<td><input type="password" name="repwd" size = "30"></td>
</tr>
<tr>
<td width="70" align="center">성별</td>
<td>
<input type ="radio" name="gender" value="0" checked>남
<input type ="radio" name="gender" value="1">여
</td>
</tr>
<tr>
<td width="70" align="center">이메일</td>
<td>
<input type ="text" name = "email1">@
<select name ="email2" style ="width:100px;">
<option value="naver.com">naver.com
<option value="gmail.com">gmail.com
<option value="hanmail.com">hanmail.com
<option value="nate.com">nate.com
</select>
</td>
</tr>
<tr>
<td width="70" align="center">핸드폰</td>
<td>
<select name="tel1" style="width:70px;">
<option value ="010">010
<option value ="011">011
<option value ="019">019
</select>-
<input type="text" name="tel2" size="10">-
<input type="text" name="tel3" size="10">
</td>
</tr>
<tr>
<td width="70" align="center">주소</td>
<td>
<input type="text" name="addr" size="50"><br>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="button" value="회원가입" onclick="javascript:checkWrite()">
<input type="reset" value="다시 작성">
</td>
</tr>
</table>
</form>
</body>
</html>
3. 10-member/src/member.dao/MemberDAO.java
package member.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import member.bean.MemberDTO;
public class MemberDAO {
private String diver = "oracle.jdbc.driver.OracleDriver";
private String url = "jdbc:oracle:thin:@localhost:1521:xe";
private String username = "jspexam2";
private String password = "m1234";
private Connection conn;
private PreparedStatement pstmt;
private ResultSet rs;
public MemberDAO(){
try{
Class.forName(diver);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
public Connection getConnection(){
try {
conn = DriverManager.getConnection(url,username,password);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return conn;
}
public int write(MemberDTO memberDTO){
int su = 0;
conn = getConnection();
String sql =
"insert into member values (?,?,?,?,?,?,?,?,?,?,sysdate)";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, memberDTO.getName());
pstmt.setString(2, memberDTO.getId());
pstmt.setString(3, memberDTO.getPwd());
pstmt.setString(4, memberDTO.getGender());
pstmt.setString(5, memberDTO.getEmail1());
pstmt.setString(6, memberDTO.getEmail2());
pstmt.setString(7, memberDTO.getTel1());
pstmt.setString(8, memberDTO.getTel2());
pstmt.setString(9, memberDTO.getTel3());
pstmt.setString(10, memberDTO.getAddr());
su = pstmt.executeUpdate();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} finally{
try {
if(pstmt != null) pstmt.close();
if(conn != null) conn.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
return su;
}
public String login(String id, String pwd){
String name="null";
conn = getConnection();
String sql = "select * from member where id=? and pwd=?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
pstmt.setString(2, pwd);
rs = pstmt.executeQuery();
if(rs.next()){
name = rs.getString("name"); //rs.getString(1);
}
} catch(SQLException e){
e.printStackTrace();
}
finally {
// TODO: handle finally clause
try{
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(conn != null) conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
return name;
}
///////////////////////////////////////////////////
public boolean isExistId(String id){
boolean exist = false;
conn = getConnection();
String sql = "select * from member where id=?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, id);
rs = pstmt.executeQuery();
if(rs.next()){
exist = true;
}
} catch(SQLException e){
e.printStackTrace();
}
finally {
// TODO: handle finally clause
try{
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(conn != null) conn.close();
}catch(Exception e){
e.printStackTrace();
}
}
return exist;
}
///////////////////////////////////////////////////////////
}
4. 10-member/WebContent/member/checkId.jsp
<%@page import="member.dao.MemberDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page info ="copyright by MIS" %>
<% request.setCharacterEncoding("utf-8"); %>
<%
//데이터
String id = request.getParameter("id");
//DB
MemberDAO memberDAO = new MemberDAO();
boolean exist = memberDAO.isExistId(id);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>중복방지</title>
<script type="text/javascript">
function checkIdClose(){
opener.writeForm.id.value = '<%=id%>';
window.close();
opener.writeForm.pwd.focus();
}
</script>
</head>
<body>
<form name="" method="post" action="chechId.jsp">
<%if(exist){ %>
<%=id %>는 사용중입니다.<br><br>
아이디 <input type="text" name="id">
<input type="submit" value="중복체크">
<%}else{ %>
<%=id %>는 사용 가능합니다.<br><br>
<input type="button" value="사용" onclick="checkIdClose()">
<%} %>
</form>
</body>
</html>
반응형
'IT > Programming' 카테고리의 다른 글
JSP 쿠키(Cookie) (0) | 2023.04.19 |
---|---|
JSP 게시판의 로그인 전/후 분리하기 (0) | 2023.04.19 |
JSP 회원가입 및 로그인 - 4. 로그인 처리하기 (0) | 2023.04.19 |
JSP 회원가입 및 로그인 - 3. 회원가입 정보를 DB에 저장하기 (0) | 2023.04.19 |
JSP 회원가입 및 로그인 - 2. 회원가입 폼 만들기 (0) | 2023.04.19 |