회원가입시 사용자로부터 아이디를 입력받아서 중복검사하는 코드를 만들어보기.
<ul class="actions vertical">
<li><h5>회원가입</h5></li>
<form action="JoinCon.do" method="post">
<li><input id="Join_email" type="text" name="email" placeholder="Email을 입력하세요">
<button type="button" id="check" onclick="emailCheck()">중복체크</button>
<p id="result"></p></li>
<li><input type="password" name="pw" placeholder="PW를 입력하세요"></li>
<li><input type="text" name="tel" placeholder="전화번호를 입력하세요"></li>
<li><input type="text" name="address" placeholder="집주소를 입력하세요"></li>
<li><input type="submit" value="JoinUs" class="button fit"></li>
</form>
</ul>
<script src="assets/js/main.js"></script>
<script type="text/javascript">
function emailCheck(){
$.ajax({
url : "check.do",
type : "get",
data : {
"email" : $("input[id=Join_email]").val()
// "email" : $("#Join_email").val() -> 가독성이 더 좋음.
},
success : function(res){
// rs.next() -> true : 중복이 있다. / false : 중복이 없다.
// 기본적으로 out객체로 응답받는 데이터는 text/html 구조임.
// boolean false 로 받아온 객체는 String "false"로 받아짐.
if(res == "true") {
$("#result").html("중복된 ID입니다. ").css("color", "red");
}else {
$("#result").html("사용가능한 ID입니다. ").css("color", "green");
}
},
error : function(){
alert("요청실패")
}
});
}
</script>
String uri = request.getRequestURI();
System.out.println(uri);
String path = request.getContextPath();
System.out.println(path);
String command = uri.substring(path.length()+1);
System.out.println("요청기능 : " + command);
if(command.equals("check.do")) {
// 1. 파라미터 수집
String email = request.getParameter("email");
// 2. DAO 객체 생성
memberDAO dao = new memberDAO();
// 3. DAO객체의 메서드 사용
boolean check = dao.emailCheck(email);
// 4. printWriter객체 생성
PrintWriter out = response.getWriter();
// 5. 응답
out.print(check);
}
package com.message.DAO;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.http.HttpSession;
import com.message.DTO.memberDTO;
public class memberDAO {
Connection conn = null;
PreparedStatement psmt = null;
private boolean check;
public void getConn() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@000.0.0.0:0000";
String dbid = "00";
String dbpw = "00";
conn = DriverManager.getConnection(url, dbid, dbpw);
}catch(Exception e){
e.printStackTrace();
}
}
public void close() {
try {
if(rs != null){
rs.close();
}
if(psmt!=null) {
psmt.close();
}
if(conn!=null) {
conn.close();
}
}catch (Exception e) {
e.printStackTrace();
}
}
public boolean emailCheck(String email) {
try {
getConn();
String sql = "select * from member_message where email = ?";
psmt = conn.prepareStatement(sql);
psmt.setString(1, email);
rs = psmt.executeQuery();
check = rs.next();
}catch(Exception e) {
//ClassNotFoundException, SQLException
e.printStackTrace();
}finally {
close();
}
return check;
}