본문 바로가기
STUDY/JSP

회원가입(서블릿) - DB, DAO, DTO

by Anne of Green Galbes 2019. 2. 26.

서블릿을 사용하여 회원가입 만들기


○ 로그인 성공시

성적처리(Jsp) / 게시판(Jsp) / 방명록 / 게시판(Servlet) / 성적처리(Servlet) 사용 가능


○ 위치

DAO, DTO, MemberServlet, CustomInfo 위치


○ CustomInfo

   - 로그인시 session에 올리는 값

   - userId와 userName을 가지고 있음


1. DB생성

○ 기본키(아이디) : userId

○ 비밀번호 : userPwd

○ 이름 : userName

○ 생일 : userBirth

○ 전화번호 : userTel

○ DB의 변수명은 DTO의 변수명과 동일해야 한다.

create table member

(userId varchar2(10) not null,

userPwd varchar2(10) not null,

userName varchar2(20) not null,

userBirth date,

userTel varchar2(20),

constraint pk_member_userId primary key(userId));


2. web.xml 추가

○ /join/* : 주소창에 /join을 입력하면 memberServlet 실행

○ join뒤에 뭐가 들어오던 상관 없음

○ servlet-mapping의 servlet-name과 servlet의 servlet-name은 같아야 한다

○ servlet-classs : 사용하는 서블릿의 위치

<!-- Servlet 회원가입 -->

<servlet>

<servlet-name>memberServlet</servlet-name>

<servlet-class>com.join.MemberServlet</servlet-class>

</servlet>

 <servlet-mapping>

<servlet-name>memberServlet</servlet-name>

<url-pattern>/join/*</url-pattern>

</servlet-mapping>


3. MemberDTO

○ getter / setter는 무조건 작성해야한다.

package com.join;

public class MemberDTO {

private String userId;

private String userPwd;

private String userName;

private String userBirth;

private String userTel;

public String getUserId() {

return userId;

}

public void setUserId(String userId) {

this.userId = userId;

}

public String getUserPwd() {

return userPwd;

}

public void setUserPwd(String userPwd) {

this.userPwd = userPwd;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public String getUserBirth() {

return userBirth;

}

public void setUserBirth(String userBirth) {

this.userBirth = userBirth;

}

public String getUserTel() {

return userTel;

}

public void setUserTel(String userTel) {

this.userTel = userTel;

}

}


4. MemberDAO

① 회원가입

public int insertData(MemberDTO dto){

int result = 0;

PreparedStatement pstmt = null;

String sql;

try {

sql = "insert into member (userId,userPwd,userName,userBirth,userTel) ";

sql+= "values (?,?,?,?,?)";

pstmt = conn.prepareStatement(sql);

pstmt.setString(1, dto.getUserId());

pstmt.setString(2, dto.getUserPwd());

pstmt.setString(3, dto.getUserName());

pstmt.setString(4, dto.getUserBirth());

pstmt.setString(5, dto.getUserTel());

result = pstmt.executeUpdate();

pstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return result;

}


② 1명의 회원 정보 가져오기

○ 로그인시 사용

○ 수정시 수정화면에 데이터 보여줄 때 사용

public MemberDTO getReadData(String userId){

MemberDTO dto = null;

PreparedStatement pstmt = null;

ResultSet rs = null;

String sql;

try {

sql = "select userId,userPwd,userName,userBirth,userTel ";

sql+= "from member where userId=?";

pstmt = conn.prepareStatement(sql);

pstmt.setString(1, userId);

rs = pstmt.executeQuery();

if(rs.next()){

dto = new MemberDTO();

dto.setUserId(rs.getString("userId"));

dto.setUserPwd(rs.getString("userPwd"));

dto.setUserName(rs.getString("userName"));

dto.setUserBirth(rs.getString("userBirth"));

dto.setUserTel(rs.getString("userTel"));

}

rs.close();

pstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return dto;

}


③정보수정

public int updateData(MemberDTO dto){

int result = 0;

PreparedStatement pstmt = null;

String sql;

try {

sql = "update member set userPwd=?,userBirth=?,userTel=? ";

sql+= "where userId=?";

pstmt = conn.prepareStatement(sql);

pstmt.setString(1, dto.getUserPwd());

pstmt.setString(2, dto.getUserBirth());

pstmt.setString(3, dto.getUserTel());

pstmt.setString(4, dto.getUserId());

result = pstmt.executeUpdate();

pstmt.close();

} catch (Exception e) {

System.out.println(e.toString());

}

return result;

}


댓글