📝 닉네임 중복 체크 기능
💡 VS Code
🔎 signUp.js
...
const memberNickname = document.getElementById("memberNickname");
const nicknameMessage = document.getElementById("nicknameMessage");
memberNickname.addEventListener("input", function(){
if(memberNickname.value.trim().length == 0){
nicknameMessage.innerText = "영어/숫자/한글 2~10글자 사이로 작성해주세요.";
nicknameMessage.classList.remove("confirm", "error");
checkObj.memberNickname = false;
return;
}
const regExp = /^[a-zA-Z0-9가-힣]{2,10}$/;
if(regExp.test(memberNickname.value)){
$.ajax({
url : "nicknameDupCheck" ,
data : {"memberNickname" : memberNickname.value} ,
type : "GET" ,
success : function(res){
if(res == 0 ){
nicknameMessage.innerText = "사용 가능한 닉네임 입니다.";
nicknameMessage.classList.add("confirm");
nicknameMessage.classList.remove("error");
checkObj.memberNickname = true;
}else {
nicknameMessage.innerText = "이미 사용중인 닉네임 입니다.";
nicknameMessage.classList.add("error");
nicknameMessage.classList.remove("confirm");
checkObj.memberNickname = false;
}
},
error : function(){
console.log("에러 발생");
}
});
} else{
nicknameMessage.innerText = "닉네임 형식이 유효하지 않습니다.";
nicknameMessage.classList.add("error");
nicknameMessage.classList.remove("confirm");
checkObj.memberNickname = false;
}
});
...
💡 Eclipse
🔎 NicknameDupCheckServlet.java
package edu.kh.community.member.controller;
import java.io.IOException;
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/nicknameDupCheck")
public class NicknameDupCheckServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String memberNickname = req.getParameter("memberNickname");
try {
MemberService service = new MemberService();
int result = service.nicknameDupCheck(memberNickname);
resp.getWriter().print(result);
} catch (Exception e) {
e.printStackTrace();
}
}
}
🔎 MemberService.java
...
public int nicknameDupCheck(String memberNickname) throws Exception{
Connection conn = getConnection();
int result = dao.nicknameDupCheck(conn, memberNickname);
close(conn);
return result;
}
...
🔎 MemberDAO.java
...
public int nicknameDupCheck(Connection conn, String memberNickname) throws Exception{
int result = 0;
try {
String sql = prop.getProperty("nicknameDupCheck");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, memberNickname);
rs = pstmt.executeQuery();
if(rs.next()) {
result = rs.getInt(1);
}
} finally {
close(rs);
close(pstmt);
}
return result;
}
...
🔎 member-sql.xml
...
<entry key="nicknameDupCheck">
SELECT COUNT(*) FROM MEMBER
WHERE MEMBER_NICK = ?
AND SECESSION_FL = 'N'
</entry>
...