ITWILL학원 : 24강 JSP기초 BY 정규태강사
자바빈 프로젝트 1 : 회원가입페이지만들기
자바빈 프로젝트 2 : 로그인 및 로그아웃페이지만들기
자바빈 프로젝트 3 : 회원정보조회 및 수정페이지만들기
1. 메인페이지 main.jsp에서 버튼 추가
메인페이지에 회원정보조회 버튼을 만든다
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | <%//1.한글처리, 파라미터 (세션생성)request.setCharacterEncoding("UTF-8");
 String id = (String) session.getAttribute("id");//object를 string으로 다운캐스팅
 String name = request.getParameter("name");
 //1-1. id없이는 진입불가, id없는 경우 로그인페이지로 이동
 if(id == null){
 response.sendRedirect("loginForm.jsp");
 }
 %>
 <h2><%=id %>님 환영합니다.</h2>
 
 <input type="button" value="회원정보조회" onclick="location.href='memberinfo.jsp'">
 <input type="button" value="회원정보수정" onclick="location.href='updateForm.jsp'">
 <input type="button" value="로그아웃" onclick="location.href='logout.jsp'">
 <input type="button" value="회원탈퇴" onclick="location.href='deleteForm.jsp'">
 
 | 
2. 회원정보조회페이지 memberinfo.jsp 생성
회원정보를 DB에서 가져와서 출력하는 memberinfo.jsp를 만든다
순서
- 한글설정 & 변수생성 - 
- 1-1. id값확인 -없으면 로그인페이지로 이동
 
- MemberDAO객체 생성 -> 회원정보 가져오는 메서드생성 - 
- MemberBean import하기
- MemberBean 데이터타입 mb변수로 메서드정보 담아오기
 
- 데이터처리 : 테이블에 담기 
| 12
 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
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 
 | String id = (String) session.getAttribute("id");
 
 if(id == null){
 response.sendRedirect("loginForm.jsp");
 }
 
 MemberDAO mdao = new MemberDAO();
 MemberBean mb = mdao.getMember(id);
 
 
 if(mb != null){
 %>
 <h2>마이페이지</h2>
 <table border="1">
 <tr>
 <td>아이디</td>
 <td><%=mb.getId() %></td>
 </tr>
 <tr>
 <td>비밀번호</td>
 <td><%=mb.getPw() %></td>
 </tr>
 <tr>
 <td>이름</td>
 <td><%=mb.getName() %></td>
 </tr>
 <tr>
 <td>나이</td>
 <td><%=mb.getAge() %></td>
 </tr>
 <tr>
 <td>성별</td>
 <td><%=mb.getGender() %></td>
 </tr>
 <tr>
 <td>이메일</td>
 <td><%=mb.getEmail() %></td>
 </tr>
 <tr>
 <td>회원가입일</td>
 <td><%=mb.getReg_date() %></td>
 </tr>
 </table>
 <%
 }
 %>
 <hr>
 <input type="button" value="뒤로가기" onclick="location.href='main.jsp'">
 
 | 
3. DAO에서 getMember()메서드만들기
회원정보 가져오는 메서드 getMember()로 회원정보 전부 리턴 -> 테이블에 추가해야한다.
순서
- 드라이브로드 & 디비연결
- SQL 구문 작성 & pstmt 생성
- 실행 -> rs저장
- 데이터처리 : DB에 있는 회원정보 저장 후 memberinfo페이지로 전달
- 4-1. MemberBean mb = null; //객체 레퍼런스 생성
- 4-2. rs.next() : DB의 컬럼명과 일치해야함!
 
- 자원해제
| 12
 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
 32
 33
 34
 35
 36
 37
 38
 
 | public MemberBean getMember(String id){MemberBean mb = null;
 
 
 
 try{
 
 con = getCon();
 
 sql = "select * from itwill_member where id=?";
 pstmt = con.prepareStatement(sql);
 pstmt.setString(1, id);
 
 rs = pstmt.executeQuery();
 
 
 
 if(rs.next()){
 mb = new MemberBean();
 mb.setId(rs.getString("id"));
 mb.setPw(rs.getString("pw"));
 mb.setName(rs.getString("name"));
 mb.setAge(rs.getInt("age"));
 mb.setEmail(rs.getString("email"));
 mb.setGender(rs.getString("gender"));
 mb.setReg_date(rs.getTimestamp("reg_date"));
 
 System.out.println("회원정보저장완료");
 }
 System.out.println("sql구문실행완료");
 }catch (SQLException e) {
 
 e.printStackTrace();
 } finally {
 closeDB();
 }
 return mb;
 }
 
 | 
순서
- 한글처리 & 세션변수
- 1-1. 로그인여부체크 (로그인x->로그인페이지로이동) //object->string 형변환필수
 
- 드라이브로드 & 디비연결 = 멤버DAO객체 생성 -> getMember()메서드호출
- 로그인한 사용자의 정보를 가져오기
- getMember()를 이용해서 id에 해당하는 회원정보 가져오기 
 
- 데이터처리 : 테이블형식으로 출력
- 비밀번호를 입력받은 뒤 수정하기 ->updatePro.jsp에서 진행
| 12
 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
 32
 33
 34
 35
 36
 37
 
 | <%request.setCharacterEncoding("UTF-8");
 String id = (String) session.getAttribute("id");
 if(id == null){
 response.sendRedirect("loginForm.jsp");
 }
 
 MemberDAO mdao = new MemberDAO();
 MemberBean mb = mdao.getMember(id);
 
 
 
 %>
 <fieldset>
 <legend>회원정보수정</legend>
 <form action="updatePro.jsp" method="post" name="fr">
 아이디 <input type="text" name="id" value="<%=mb.getId() %>" readonly><br>
 비밀번호 <input type="password" name="pw" placeholder="비밀번호를 입력하세요" required><br>
 이름 <input type="text" name="name" value="<%=mb.getName() %>"><br>
 나이 <input type="text" name="age" value="<%=mb.getAge() %>"><br>
 성별
 <input type="radio" name="gender" value="여"
 <% if(mb.getGender().equals("여")){ %>
 checked
 <%}%>
 > 여성
 <input type="radio" name="gender" value="남"
 <% if(mb.getGender().equals("남")){ %>
 checked
 <%}%>
 > 남성<br>
 이메일 <input type="text" name="email" value="<%=mb.getEmail() %>"><br>
 <input type="submit" value="회원정보수정하기">
 </form>
 </fieldset>
 
 <button onclick="location.href='main.jsp'">뒤로가기</button>
 
 | 
5. 회원정보수정페이지 updatePro.jsp 생성
순서
- 로그인여부체크 ->로그인페이지이동
- 액션태그사용 : 전달된 정보를 저장(아이디,비번,이름,나이,성별,이멜) = jsp:useBean
 2-1. 파라미터 값 저장 = jsp:setProperty
- MeberDAO객체 생성 ->  updateMember()메서드 호출
- 데이터처리 : 1-수정완료, 0-비번오류, -1-아이디없음
| 12
 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
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 
 | <%//1. 한글처리 & 로그인여부체크 ->로그인페이지이동
 request.setCharacterEncoding("UTF-8");
 String id = (String) session.getAttribute("id");
 if (id == null) {
 response.sendRedirect("loginForm.jsp");
 }
 
 %>
 
 <jsp:useBean id="mb" class="com.itwillbs.member.MemberBean" />
 
 <jsp:setProperty property="*" name="mb"/>
 
 <%//3. MeberDAO객체 생성
 MemberDAO mdao = new MemberDAO();
 
 //4. 데이터처리 : 1-수정완료, 0-비번오류, -1-아이디없음
 int result = mdao.updateMember(mb);
 
 if(result == 1){
 %>
 <script type="text/javascript">
 alert("회원정보수정 성공");
 </script>
 <%
 System.out.println("회원정보수정성공");
 response.sendRedirect("main.jsp");
 }else if(result == 0){
 %>
 <script type="text/javascript">
 alert("비밀번호오류로 회원정보수정실패");
 history.back();
 </script>
 <%
 }else{
 %>
 <script type="text/javascript">
 alert("존재하지않는 아이디입니다.");
 history.back();
 </script>
 <%
 }
 %>
 
 | 
6. DAO에서 updateMember()메서드만들기
회원정보 수정 메서드
순서
- 드라이브로드 & 디비연결
- SQL 구문 작성 & pstmt 생성
- 2-1. select 사용해서 id가 있는지 체크
 
- 실행 -> rs저장
- 데이터처리 : DB에 있는 회원인 경우 
- 4-1. DB에 있는 회원 -> 비번체크 : 비번일치(->수정) 비번불일치(->에러)    
- 비번일치하는 경우 : SQL 구문작성 & pstmt 생성 -> 실행
 
- 4-2. DB에 없는 회원 -> 에러
 
- 자원해제
| 12
 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
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 
 | public int updateMember(MemberBean mb){int result = -1;
 
 try {
 
 con = getCon();
 
 sql = "select pw from itwill_member where id=?";
 pstmt = con.prepareStatement(sql);
 pstmt.setString(1, mb.getId());
 
 rs = pstmt.executeQuery();
 
 if(rs.next()){
 if(mb.getPw().equals(rs.getString("pw"))){
 
 
 sql = "update itwill_member set name=?, age=?, gender=?, email=? "
 + "where id=?";
 pstmt = con.prepareStatement(sql);
 pstmt.setString(1, mb.getId());
 
 pstmt.executeUpdate();
 System.out.println("회원정보수정성공");
 result = 1;
 }else{
 result = 0;
 System.out.println("아디일치,비번불일치 - 회원정보수정실패");
 }
 }else{
 result = -1;
 System.out.println("존재하지않는아이디 - 회원정보수정실패");
 }
 } catch (SQLException e) {
 
 e.printStackTrace();
 } finally{
 closeDB();
 }
 return result;
 }
 
 |