250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- try-catch
- emailauth
- 상수
- 페이징
- 개발
- mariadb
- 연산자
- 반복문
- EmailJS
- DB
- javascript
- 리뷰페이징
- 향상된for
- url경로
- 메서드
- Java
- pagination
- crud
- integer
- Throw
- 개발도서
- springboot
- 예외
- DATABASE
- 오류
- 비전공자를위한 이해할 수 있는 IT 지식
- 열거형
- 공부
- css
- HTML
- Today
- 0
- Total
- 377
o-yoon
[SpringBoot] 회원가입 구현하기 본문
728x90
1. MemberController에서 회원가입시 정보를 받을 화면을 getRegister 메서드에서 register.html 연결
@RequestMapping(value = "register",
method = RequestMethod.GET,
produces = MediaType.TEXT_HTML_VALUE)
public ModelAndView getRegister() {
ModelAndView modelAndView = new ModelAndView("member/register");
return modelAndView;
}
2. 이메일 인증,비밀번호 해싱 등 다른 서비스 구현은 다음에 할 테니 우선 생략
위 html 에서 입력받은 'user' 객체를'IMemberMapper' 객체의 'insertUser'메서드 호출 시 전달인자로 하여 Insert 하는 쿼리구문을 작성한 뒤 위의 결과가 0이면 'CommonResult.FAILURE'을 반환하고 1이상이면 'CommonResult.SUCCESS'를 반환하는 MemberService의 register 메서드를 생성한다.
public Enum<? extends IResult> register(UserEntity user) {
return this.memberMapper.insertUser(user) == 0
?CommonResult.FAILURE
:CommonResult.SUCCESS;
}
3. postRegister 메서드 작성하기
3-1. Controller의 PostRegister 에서 'MemberService'가 가진 'register'메서드에 'user' 전달하여 호출
3-2. <3-1>이 반환하는 결과 'Enum<?>'를 받아와 'JSONObject'타입의 응답결과 만들기.
3-3. <3-2>에서 만들어진 'JSONObject' 객체를 문자열화(thString) 하여 반환하기.
@RequestMapping(value = "register",
method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public String postRegister(UserEntity user, EmailAuthEntity emailAuth) throws NoSuchAlgorithmException {
Enum<?> result = this.memberService.register(user, emailAuth);
JSONObject responseObject = new JSONObject();
responseObject.put("result", result.name().toLowerCase());
return responseObject.toString();
}
728x90
4. JavaScript에서 Ajax 통신 작성하기
const xhr = new XMLHttpRequest(); //XMLHttpRequest 객체 생성
const formData = new FormData(); //FormData 객체 생성
//요청 시 같이 보낼 데이터
formData.append('email', form['email'].value);
formData.append('password', form['password'].value);
formData.append('nickName', form['nickName'].value);
formData.append('name', form['name'].value);
formData.append('contact', form['contact'].value);
formData.append('addressPostal', form['addressPostal'].value);
formData.append('addressPrimary', form['addressPrimary'].value);
formData.append('addressSecondary', form['addressSecondary'].value);
xhr.open('POST', './register');
xhr.onreadystatechange = () => {
if (xhr.readyState === XMLHttpRequest.DONE) {
Cover.hide();
if (xhr.status >= 200 && xhr.status < 300) {
const responseObject = JSON.parse(xhr.responseText);
switch (responseObject['result']) {
case 'success':
form.querySelector('[rel="stepText"]').innerText = '회원가입 완료';
form.querySelector('[rel="nextButton"]').innerText = '로그인하러 가기';
break;
default:
Warning.show('알 수 없는 이유로 인증번호를 전송하지 못하였습니다. 잠시 후 다시 시도해 주세요.');
}
} else {//200-299 아니면
EmailWarning.show('서버와 통신하지 못하였습니다. 잠시 후 다시 시도해 주세요,');
form.querySelector('[rel="emailWarning"]').classList.add('visible');
}
}
};
xhr.send(formData);
}
직접 실행해보면
회원가입 완료가 정삭적으로 구현되었다 ~~
728x90
'개발 > SpringBoot' 카테고리의 다른 글
[SpringBoot] email Auth: 이메일 인증 구현하기 (1) | 2023.02.22 |
---|---|
[SpringBoot,JavaScript] 쇼핑몰 리뷰 < Paging | Pagination > 구현 (2) | 2023.01.18 |
[SpringBoot] 게시판 비밀댓글 구현 (3) | 2023.01.18 |
[SprinBoot] @ResponseBody 어노테이션 (0) | 2022.12.27 |
[SpringBoot] 게시판 목록 < paging | pagination > 처리 및 검색기능 구현 코드 (5) | 2022.12.26 |
- Tag
- ajax, Java, javascript, springboot, 회원가입
0 Comments