Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

KSI일기장

0426 spring 이메일 중복, 유효성 검사 본문

Spring

0426 spring 이메일 중복, 유효성 검사

MyDiaryYo 2023. 4. 26. 17:57

//이메일 유효성 검사 js

// 비밀번호 유효성 검사
const memberPw = document.getElementById("memberPw");
const memberPwConfirm = document.getElementById("memberPwConfirm");
const pwMessage = document.getElementById("pwMessage");

memberPw.addEventListener("input", function(){

    if(memberPw.value.length == 0){
        pwMessage.innerText = "영어, 숫자, 특수문자(!,@,#,-,_) 6~30글자 사이로 작성해주세요.";
        pwMessage.classList.remove("confirm", "error");

        checkObj.memberPw = false; // 유효 X 기록
        return;
    }

    const regExp = /^[\w!@#_-]{6,30}$/;

    if( regExp.test(memberPw.value) ){ // 비밀번호 유효

        checkObj.memberPw = true; // 유효 O 기록

        if(memberPwConfirm.value.length == 0){ // 비밀번호 유효, 확인 작성 X
            pwMessage.innerText = "유효한 비밀번호 형식입니다.";
            pwMessage.classList.add("confirm");
            pwMessage.classList.remove("error");
        
        } else { // 비밀번호 유효, 확인 작성 O
            checkPw(); // 비밀번호 일치 검사 함수 호출()
        }

    }else{
        pwMessage.innerText = "비밀번호 형식이 유효하지 않습니다.";
        pwMessage.classList.add("error");
        pwMessage.classList.remove("confirm");

        checkObj.memberPw = false; // 유효 X 기록
    }
});


// 비밀번호 확인 유효성 검사

// 함수명() : 함수 호출(수행)
// 함수명   : 함수에 작성된 코드 반환
memberPwConfirm.addEventListener("input", checkPw );
// -> 이벤트가 발생 되었을 때 정의된 함수를 호출하겠다


function checkPw(){ // 비밀번호 일치 검사
    // 비밀번호 / 비밀번호 확인이 같을 경우
    if(memberPw.value == memberPwConfirm.value){
        pwMessage.innerText = "비밀번호가 일치합니다.";
        pwMessage.classList.add("confirm");
        pwMessage.classList.remove("error");

        checkObj.memberPwConfirm = true; // 유효 O 기록

    } else{
        pwMessage.innerText = "비밀번호가 일치하지 않습니다.";
        pwMessage.classList.add("error");
        pwMessage.classList.remove("confirm");

        checkObj.memberPwConfirm = false; // 유효 X 기록
    }
}

 

//MemberController

//이메일 중복검사
	
	//int result를 return하기 위한 어노테이션
	@ResponseBody
	@GetMapping("/emailDupCheck")
	//public String emailDupCheck(@RequestParam("memberEmail") String memberEmail)
	public int emailDupCheck(String memberEmail) {
		
		int result = service.emailDupCheck(memberEmail);
		
		//컨트롤러에서 반환되는 값을 forward또는redirect를 위한 경로인 경우가 일반적이다
		//-> 반환되는 값은 경로로 인식된다
		//->해결하기 위한 어노테이션 @ResponseBody가 존재
		
		//@ResponseBody :반환되는 값을 응답의 몸통(body)에 추가해 이전 요청주소로 돌아간다
		//-> 컨트롤러에서 반환되는 값이 경로가 아닌 값자체로 인식된다
		return result;
		
	}

//MemberServiceImpl

@Override
	public int emailDupCheck(String memberEmail) {
		
		return dao.emailDupCheck(memberEmail);
	}

//MemberService

public interface MemberService {
	//모든 메서드가 추상 메서드(public abstract)
	//모든 필드는 상수 (public static final)

	/**로그인 서비스
	 * @param inputMember
	 * @return loginMember
	 */
	Member login(Member inputMember);
	//-> public abstract 생략

	public int emailDupCheck(String memberEmail);

}//end of interface

//MemberDAO

/**이메일 중복검사 DAO
	 * @param memberEmail
	 * @return
	 */
	public int emailDupCheck(String memberEmail) {
		return sqlSession.selectOne("memberMapper.emailDupCheck", memberEmail);
		//sqlSession.selectOne(" mapper에서 <select id="emailDupCheck">의 id값")
	}