JSP MVC1 모델 로그인 및 회원가입 ② 회원가입페이지

2017. 4. 28. 13:48JSP



< JoinServelt.java > doGet()


( login.jsp - "회원가입 버튼 클릭" 해서넘어옴)  



# join.jsp로 이동한다

 

 

< join.jsp >

 

 

# member.js 자바스크립트 사용선언 후 아이디의 중복확인을 위한 idCheck() 메서드를 사용한다

 


< member.js >

 

 

# url = "idCheck.do?userid="+document.frm.userid.value;

# window.open( url , titlem fram );        // window창을 하나 생성하고 해당 창에서 idCheck.do로 이동한다

 

# idCheckServlet.java == idCheck.do     // mapping

 

 

< idCheckServlet.java >

 

 

# 넘어온 userid 값을 저장한 후 DAO의 confirm 메서드를 이용해 DB에 해당 userid값이 존재하는지 확인한다

 

# 존재여부의 결과값 result 와 해당 유저 아이디 userid 를 idCheck.jsp 로 보내준다 ( 해당 window 창에 출력 )

 

 

< idCheck.jsp >

 

 

# window창에서 실제로 보이는 화면이다.

# result == 1 이면 DB에 해당 userid값이 존재하는 경우

# result == -1 이면 DB에 해당 userid값이 존재하지 않아서 해당아이디를 사용할 수 있다.

# 해당 폼은 idCheckServlet.java 의 doGet() 으로 다시 전송하여 반복적으로 중복확인을 할 수 있게 설계햇다

# 해당 아이디를 사용하려고 결정했으면 '사용버튼'을 클릭한다 이 때 member.js 의 idok() 메서드가 실행된다.

 

 

< member.js >

 


# opener : 자바스크립트를 실행한 페이지를 실행한 페이지 ( join.jsp )

# document : 자바스크립트를 실행한 페이지 ( joinCheck.jsp )

# opener.frm.reid.value 에 값을 넣어 줌으로써 아이디중복체크 실행여부를 확인 할 수 있다.

( joinCheck메서드에서 reid 에 값이 들어있는지 확인한다 )


# join.jsp 의 userid 입력창의 값이 중복체크확인 완료한 값으로 지정되고,

# self.close() -> window창이 종료되고 회원가입창( join.jsp ) 만 남게된다



< member.js >



# 회원가입 양식을 모두 작성하고 가입버튼을 누른 마지막 절차이다

# joinCheck() 메서드에서는 이름과 아이디의 입력조건이 만족되지 않으면 회원가입창의 데이터들을 전송시키지 않는다.

# 모든 조건이 만족되면 회원가입창의 폼은 action="join.do" method="post" 이므로

#  JoinServlet.java == join.do  // JoinServlet의 doPost() 로 이동하게 된다.



< JoinServlet.java > doPost()



# join.jsp 에서 입력한 데이터들을 "vo" 객체에 저장한다

# MemberDAO / insertMember 메서드사용 => DB에 해당 데이터 추가

# message속성을 가지고 login.jsp 로 이동하여 회원가입 성공여부를 알려준다

# userid 를 들고가서 아이디 입력창에 써주었다.


< MemberDAO / insertMember 메서드 > DB에 회원정보 등록



sql = "insert into membership valus(?,?,?,?,?,?)";    // membership테이블에 데이터를 삽입(추가)한다

conn = getConnection();    // DB와 연결

pstmt = conn.prepareStatement(sql);    // pstmt객체에 대입 ( DB에 적용하기위해 )

pstmt.setString(1, vo.getName() );        // 바인딩변수를 채워준다 ( vo는 joinForm에서 작성한 데이터를 저장한 객체 )

....

result = pstmt.executeUpdate();            // 대입이 성공하면 1 , 대입이 실패하면 0




< MemberDAO / confirm 메서드 > 아이디의 중복여부 확인



sql = "select userid from membership where userid =?";

....

pstmt.setString ( 1 , userid );

rs = pstmt.executeQuery();

if ( rs.next() ){

// rs.next()가 존재 한다면, DB에 해당 userid가 존재한다 == 중복되서 생성못한다

result = 1;

}

result = 1이면 아이디가 중복된 것 , result = -1이면 아이디가 중복되지 않음=>사용가능한 아이디


< join.jsp 실행화면 >


< 아이디의 중복 체크 화면 >


# idCheck() 메서드가 window 창을 실행시켯고, window창에는 idCheck.jsp 가 출력



< joinServlet / doPost 에서 모든 조건 만족한 후 login.jsp 로 이동 >


# DB에 입력한 정보들이 insert 되었다.

# 로그인이 가능하다