YJ의 새벽
JDBC 활용 연습용6. ( 닉네임 중복확인 + 전화번호유효성검사 ) 본문
---signUp.js 닉네임확인 이벤트 추가. ( 중복검사 (DB연결) )
// 닉네임 확인 . 중복검사 까지 . // 1 or 0 반환 ///////////////////////////
const regExp3 = /^[a-zA-Z0-9가-힣]{2,10}$/;
const memberNickname = document.getElementById("memberNickname");
const nicknameMessage = document.getElementById("nicknameMessage");
memberNickname.addEventListener("input",function(){
// 닉네임 입력이 안된경우
if ( memberNickname.value.length==0){
nicknameMessage.innerText="영어/숫자/한글 2~10글자 사이로 작성해주세요.!!";
nicknameMessage.classList.remove("confirm","error");
checkObj.memberNickname = false;
return;
};
// 닉네임 정규표현식 true
if ( regExp3.test(memberNickname.value)) {
$.ajax({ // 닉네임 중복이면 1 , 중복아니면 0
url : "NicknameCheck" ,
data : {"memberNickname" : memberNickname.value},
success : function(result){ // java 에서 넘어온 result 값.
if (result ==1 ) { // 닉네임 중복
nicknameMessage.innerText = "이미 사용중인 닉네임입니다";
nicknameMessage.classList.add("error");
nicknameMessage.classList.remove("confirm");
checkObj.memberNickname = false;
}else{ // 닉네임 중복 X
nicknameMessage.innerText = "사용가능한 닉네임입니다";
nicknameMessage.classList.add("confirm");
nicknameMessage.classList.remove("error");
checkObj.memberNickname = true;
}
},
error : function(){
console.log("닉네임 오류발생");
}
});
}else{ // 정규표현식 false
nicknameMessage.innerText = "닉네임 형식이 유효하지않습니다!";
nicknameMessage.classList.add("error");
nicknameMessage.classList.remove("confirm");
}
});
--- NicknameDupCheckServlet.class 추가 ( /member/NicknameCheck )
@WebServlet("/member/NicknameCheck")
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.class nicknameDupCheck() 추가
/** 멤버닉네임 중복확인 서비스
* @param memberNickname
* @return
* @throws Exception
*/
public int nicknameDupCheck(String memberNickname) throws Exception{
Connection conn = getConnection();
int result = dao.nicknameDupCheck(conn,memberNickname);
close(conn);
return result;
}
}
--- MemberDAO.class nicknameDupCheck() 추가
/** 멤버닉네임 중복확인 DAO
* @param conn
* @param memberNickname
* @return
*/
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>
--- signUp.js 전화번호 유효성검사 이벤트 추가
// 전화번호 확인 ////////////////////////////////////////////////////////
const regEx4 = /^0(1[01679]|2|[3-6][1-5]|70)\d{3,4}\d{4}$/;
const memberTel = document.getElementById("memberTel");
const telMessage = document.getElementById("telMessage");
memberTel.addEventListener("input",function(){
if ( memberTel.value.length==0){ // 전화번호 입력되지 않았을때
telMessage.innerText="전화번호를 입력해주세요.(- 제외)!!!";
telMessage.classList.remove("confirm","error");
checkObj.memberTel = false;
return;
};
if ( regEx4.test(memberTel.value)){ // 전화번호 유효성검사 O
telMessage.innerText = "전화번호를 알맞게 입력하셨습니다.";
telMessage.classList.add("confirm");
telMessage.classList.remove("error");
checkObj.memberTel = true;
} else{ // 전화번호 유효성검사 X
telMessage.innerText = "'-'없이 숫자만 입력해주세요'";
telMessage.classList.add("error");
telMessage.classList.remove("confirm");
checkObj.memberTel = false;
}
});
'SelfStudy > JDBC' 카테고리의 다른 글
JDBC 활용 연습용8. ( 로그인후 마이페이지 창 (사진업로드) ) (0) | 2023.03.30 |
---|---|
JDBC 활용 연습용7. ( 회원가입 + DB저장 ) (0) | 2023.03.30 |
JDBC 활용 연습용5. ( 인증번호 확인 + 비밀번호일치확인 ) (0) | 2023.03.29 |
JDBC 활용 연습용4. ( 롬복 + 회원가입(이메일인증) ) (0) | 2023.03.28 |
JDBC 활용 연습용3. ( 암호화 (로그인)) (0) | 2023.03.27 |
Comments