먼저 회원가입을 만들 때 생각해야 할 것.
중복된 아이디의 데이터가 들어가지 않도록 하기.
폼에 맞는 데이터가 모두 입력되도록 하기.
이 두가지를 조심해서 구현해보자.
먼저 로그인페이지에 회원가입페이지(makeidpage.jsp
)로 넘어갈 수 있는 버튼을 생성했다. 해당 버튼을 입력하면 회원가입 페이지로 이동할 것이다.
회원정보는 개인정보이기 때문에 포스트방식으로 보낸다. 사용자가 해당 폼에 입력을 하면 NoticeBoardMakeMemberController
로 매핑된 서블릿을 통해 회원가입을 처리하도록 구현할 것이다.
- 서블릿의 내장함수
doPost
를 이용하여 view페이지의 유저데이터를 받아온다.- 받아온 데이터를
makeMemberAction
함수를 통해 회원가입 성공, 실패여부를 처리할 것이다.
- 먼저 view페이지에서 폼에 맞게 입력이 되었는지 확인하는 작업을 한다. 만약에 데이터가 폼에 맞지 않게 들어왔다면 알람을 통해 다시 입력하도록 회원가입페이지로 돌아가게 한다.
- 만약에 폼에 알맞게 데이터가 들어왔으면
makeMemberActionLogic
을 통해 회원가입을 진행한다.
- view에서 가져온 데이터를 데이터베이스에 접근하기 위해서
MakeMemberDAO
객체를 만든다.- 해당 객체에 view에서 가져온 데이터를 넣어 데이터베이스에 넣는 작업을 하고, 해당 작업에 대한 결과를 토큰으로 받는다.
데이터베이스에 접근하는 DAO객체 내부를 알아보자
- 해당 sql문과 데이터를
addMember
함수에 넣어 데이터베이스에 넣는 작업을 한다.- 만약에 정상적으로 실행이 되면
MAKEMEMBERSUCCESS
토큰을 출력하고, 오류가 생겨 데이터가 들어가지 않는다면MAKEMEMBERFAIL
토큰을 출력한다.
해당 데이터를 위해서 엔티티를 하나 만들자.
- 회원가입에 필요한 데이터를 받는 엔티티
- 해당데이터를
LoginEntity
에 담고 담아진 데이터를 sql문의 해당 value값에 꽂아 넣어준다.
그래서 다시말해서 먼저번에 봣던 해당 getTokenOfMakeMember
함수를 보면, 정상적으로 데이터가 넣어지면 MAKEMEMBERSUCCESS
토큰을 출력하는 것을 볼 수 있고, 만약 오류가 나거나 데이터가 중복되거나 정상적으로 작동을 하지 않으면 MAKEMEMBERFAIL
토큰을 출력하는 것을 볼 수 있다.
- 마지막으로 컨트롤러로 다시 돌아와서 토큰의 값에 따라서 switch문으로 로직을 실행한다.