📝 이메일 중복 체크 기능
💡 VS Code
🔎 signUp.js
...
const memberEmail = document.getElementById("memberEmail");
const emailMessage = document.querySelector("#emailMessage");
memberEmail.addEventListener("input", function(){
if(memberEmail.value.trim().length == 0){
emailMessage.innerText = "메일을 받을 수 있는 이메일을 입력해 주세요.";
emailMessage.classList.remove("confirm", "error");
checkObj.memberEmail = false;
return;
}
const regExp = /^[\w\-\_]{4,}@[\w\-\_]+(\.\w+){1,3}$/;
if(regExp.test(memberEmail.value)){
$.ajax({
url : "emailDupCheck",
data : { "memberEmail" : memberEmail.value },
type : "GET",
success : function(result){
if(result == 1){
emailMessage.innerText = "이미 사용 중인 이메일입니다.";
emailMessage.classList.add("error");
emailMessage.classList.remove("confirm");
checkObj.memberEmail = false;
} else {
emailMessage.innerText = "사용 가능한 이메일입니다.";
emailMessage.classList.add("confirm");
emailMessage.classList.remove("error");
checkObj.memberEmail = true;
}
},
error : function(){
console.log("에러 발생");
}
});
}else{
emailMessage.innerText = "이메일 형식이 유효하지 않습니다."
emailMessage.classList.add("error");
emailMessage.classList.remove("confirm");
checkObj.memberEmail = false;
}
})
...
💡 Eclipse
🔎 EmailDupCheckServlet.java
package edu.kh.community.member.controller;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import edu.kh.community.member.model.service.MemberService;
@WebServlet("/member/emailDupCheck")
public class EmailDupCheckServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String memberEmail = req.getParameter("memberEmail");
try {
MemberService service = new MemberService();
int result = service.emailDupCheck(memberEmail);
resp.getWriter().print(result);
} catch(Exception e) {
e.printStackTrace();
}
}
}
🔎 MemberService.java
...
public int emailDupCheck(String memberEmail) throws Exception{
Connection conn = getConnection();
int result = dao.emailDupCheck(conn, memberEmail);
close(conn);
return result;
}
...
🔎 MemberDAO.java
...
public int emailDupCheck(Connection conn, String memberEmail) throws Exception {
int result = 0;
try {
String sql = prop.getProperty("emailDupCheck");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, memberEmail);
rs = pstmt.executeQuery();
if(rs.next()) {
result = rs.getInt(1);
}
} finally {
close(rs);
close(pstmt);
}
return result;
}
...
🔎 member-sql.xml
...
<entry key="emailDupCheck">
SELECT COUNT(*) FROM MEMBER
WHERE MEMBER_EMAIL = ?
AND SECESSION_FL = 'N'
</entry>
...