ITWILL학원 : 24강 JSP기초 BY 정규태강사
자바빈 프로젝트 1 : 회원가입페이지만들기
자바빈 프로젝트 2 : 로그인 및 로그아웃페이지만들기
자바빈 프로젝트 3 : 회원정보조회 및 수정페이지만들기
1. 메인페이지 main.jsp에서 버튼 추가
메인페이지에 회원정보조회 버튼을 만든다
1 2 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변수로 메서드정보 담아오기
데이터처리 : 테이블에 담기
1 2 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의 컬럼명과 일치해야함!
- 자원해제
1 2 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에서 진행
1 2 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-아이디없음
1 2 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에 없는 회원 -> 에러
- 자원해제
1 2 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; }
|