서블릿을 사용하여 회원가입 만들기
○ 로그인 성공시
성적처리(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;
}
'STUDY > JSP' 카테고리의 다른 글
회원가입(서블릿) - index.jsp (0) | 2019.02.26 |
---|---|
회원가입(서블릿) - 회원가입, 로그인, 비밀번호 찾기, 로그아웃 (2) | 2019.02.26 |
게시판(서블릿) - 코드 (0) | 2019.02.26 |
게시판(서블릿) - web.xml / jsp (0) | 2019.02.26 |
게시판(서블릿) - BoardServlet.jave (0) | 2019.02.26 |
댓글