JavaProject/Spring

로그인시 오류메세지 및 중복확인 구현

devel0per 2022. 4. 10. 12:56

현재 우리가 구현한 페이지로는 올바르지 않은 아이디와 패스워드를 입력하여 로그인을 시도해도 아무런 반응이 일어나지 않아, 간단한 오류메세지를 보여주는 기술 구현을 하기로 했다. 로그인 및 회원가입 파트를 맡은 내가 구현을 하기로 했는데, 오류 메세지를 보여주는것은 생각보다 간단하게 해결됐다!

 

컨트롤러 로그인 메서드에서 login값 실패인 경우에 값을 추가합니다.

조건문에 의해서 login이 되지 않은 경우에만 msg라는 정보에 false 값이 들어가서 전송됩니다. 이 값은 다른 페이지로 이동하거나 새로고침을 하면 없어지는 일회용 값이니 참고하시길!

 

그리고 로그인 jsp에는 로그인이 실패했을 경우 표시될 간단한 텍스트를 입력합니다. 

 

그러면 로그인이 실패했을 때 우리가 원했던 것처럼 간단한 오류 메세지가 뜨는것을 확인할 수 있다!

----------------------------------------------------------------------------------------------------------------------

다음은 회원가입 중복확인 기술구현이다!

첫번째로 id가 idCheck인 쿼리문을 login.xml 파일에( 각자의 맞는 xml파일에다 만들어준다 ) 

여기서 중요했던 건 resultType을 설정을 안하면 오류가 뜬다는 점이고, 컬럼들의 Setter Getter 메소드가 정의 되어 있는 space로 지정해준다.

 

 

그리고 언제나 그랬듯~ DAO DAOIMPl Service ServiceImpl 순으로 우리가 원하는 데이터와 그 타입을 지정해주고 예외처리를 해준다!

 

대망의 Controller 구현 여기서 나는 @ResponseBody를 처음 구현해보는데 이 어노테이션은 반환값 그대로 클라이언트한테 return 하고 싶은 경우에 사용하는 것이라고 한다.

idCheck의 value를 가지고 POST방식으로 날려서 결과값이 있으면 아이디가 존재하는것이므로 result 값으로 1로 반환하고 그렇지 않다면 result의 초기화값인 0을 반환한다.

(1이 반환되면 아이디가 있는것 곧 중복이란 뜻이고, 0이 반환되면 아이디가 없는것 중복이 아니라는 소리)

 

간단하게 아이디 중복확인 할 수 있는 아이디 확인 버튼을 생성해주고, ajax에 의해서 케이스마다 변환될 간단한 문구도 설정해준다.

 

이번 기술 구현에서 날 제일 빡치게 했던 ajax.. 일단 처음보는 것이고,, 계속 log를 찍어서 확인해본결과 내가 가지고 싶은 데이터들이 넘어오는데 else로만 처리 되서 계속 사용가능이라고만 뜨는 것이다..( 아이디가 중복이던, 아니던 계속 사용가능이라고 뜸.. 화가 너무 나....)

성공전에 콘솔창을 확인해보면..

 

콘솔창에서 #document와 함께 integer값으로 넘어오길래 나는 이게 정확하게 넘어오는줄알았다.. 근데 1이넘어왔는데 사용가능.. 이라니 말이 안되서 어제 밤부터 계속 서치를 시작했다... 근데 문제는 ..바로...dataType을 json으로 설정을 안해준것이다.. 설정후에 콘솔창을 확인해보면..

 

이렇게 콘솔창에 내가 진짜 원했던 '1' 이 들어오는 것이다.. 당연히 1이 들어왔으면 id는 중복 됐다는 것이고,,, 사용불가 메세지를 날려주면 성공... 또 disabled 태그를 통해서 사용가능일때만 회원가입 버튼을 누를 수 있도록 설정해 두었다.. 실제로 구현하기 전에는 쉽게 생각했었는데,, 막상 해보니까 생각보다 까다로웠던 작업... 다음부터는 실수하지말아야지..