KSI일기장
0426 spring 이메일 중복, 유효성 검사 본문
//이메일 유효성 검사 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값")
}
'Spring' 카테고리의 다른 글
0427spring예외처리 (0) | 2023.04.27 |
---|---|
0426spring 회원가입시 주소검색 가능하게 만들기 (0) | 2023.04.26 |
0426비밀번호 Bcrypt 암호화(Maven Repository 통한 라이브러리 사용) (0) | 2023.04.26 |
cmd창,powershell창 lombok설치시 에러 error: could not open 해결방법 및 lombok설치 (0) | 2023.04.26 |
spring 아이디 저장(쿠키생성) (0) | 2023.04.25 |