340 likes | 477 Views
웹 프로그래밍 설계 및 실습 MVC1 Member. 이경화 (khlee@cherry.ssu.ac.kr). First off. http://java.sun.com/ http://java.sun.com/j2se/1.4.2/docs/api/index.html http://java.sun.com/javase/6/docs/api/ [ 영문 API_1.6] http://apollo89.com/java/ko/api/ [ 한글 API_1.6]
E N D
웹 프로그래밍 설계 및 실습MVC1 Member 이경화(khlee@cherry.ssu.ac.kr)
First off http://java.sun.com/ http://java.sun.com/j2se/1.4.2/docs/api/index.html http://java.sun.com/javase/6/docs/api/ [영문API_1.6] http://apollo89.com/java/ko/api/ [한글API_1.6] http://www.w3schools.com/TAGS/ [HTML 4.01 / XHTML 1.0 Reference] http://java.sun.com/docs/books/tutorial/javabeans/ [The JavaBeans™ Tutorial]
Contents • Basic MVC Pattern • JSP Model 1 architecture - Member
Column Add in Table (2/2) ##>mysql -uroot -p0000 mysql> use lkh mysql> show tables; mysql> alter table member add regdate date; mysql> update member set regdate = now(); mysql> desc member; mysql> select * from member;
프로젝트 구조 • Context_root : 이니셜_PRJ • Java Source • DB연결 : demoPkg.DBConn.java • DAO : mvc1.member.dao.MemberDAO.java • DTO : mvc1.member.dto.MemberVO.java • JSP Source • 입력 폼 : inputMember.jsp • 회원 목록 : listMember.jsp • 회원 상세 : readMember.jsp • 회윈 등록 처리부 : createProc.jsp • 회원 수정 처리부 : updateProc.jsp • 회원 삭제 처리부 : deleteProc.jsp
package demoPkg; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DBConn { DBConn.java
/** • * Mysql DB 연결 • * @return Connection • */ • public static Connection mysqlConn() { • Connection conn = null; • String url= "jdbc:mysql://127.0.0.1:3306/lkh"; • try { • Class.forName("com.mysql.jdbc.Driver").newInstance(); • conn = DriverManager.getConnection(url,"root","0000"); • } catch(Exception e) { • System.out.println(e.toString()); • } • return conn; • } DBConn.java
/** • * Mysql DB 연결 해제 • * @param conn • */ • public static void close(Connection conn) { • try { • if(conn !=null) conn.close(); • } catch(Throwable e) { • System.out.println(e.toString()); • } finally { • try { • if(conn != null) conn.close(); • } catch ( Exception e ) { • System.out.println(e.toString()); • } • } • }
/** • * Mysql DB 연결 해제 • * @param conn • * @param pstmt • */ • public static void close(Connection conn, PreparedStatement pstmt) { • try { • if(pstmt !=null) pstmt.close(); • if(conn !=null) conn.close(); • } catch(Throwable e) { • System.out.println(e.toString()); • } finally { • try { • if(pstmt != null) pstmt.close(); • if(conn != null) conn.close(); • } catch ( Exception e ) { • System.out.println(e.toString()); • } • } • }
/** • * Mysql DB 연결 해제 • * @param conn • * @param pstmt • * @param rs • */ • public static void close(Connection conn, PreparedStatement pstmt, ResultSet rs) { • try { • if(rs != null ) rs.close(); • if(pstmt !=null) pstmt.close(); • if(conn !=null) conn.close(); • } catch(Throwable e) { • System.out.println(e.toString()); • } finally { • try { • if(rs != null ) rs.close(); • if(pstmt != null) pstmt.close(); • if(conn != null) conn.close(); • } catch ( Exception e ) { • } • } • } • } // end of class
package mvc1.member.dto; • public class MemberVO { • private int seq = 0; • private String userid = ""; • private String username = ""; • private String userpw = ""; • private String regdate = ""; • public int getSeq() { return seq; } • public String getUserid() { return userid; } • public String getUsername() { return username; } • public String getUserpw() { return userpw; } • public String getRegdate() { return regdate; } • public void setSeq(int seq) { this.seq = seq; } • public void setUserid(String userid) { this.userid = userid; } • public void setUsername(String username) { this.username = username; } • public void setUserpw(String userpw) { this.userpw = userpw; } • public void setRegdate(String regdate) { this.regdate = regdate; } • } MemberVO.java
package mvc1.member.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.*; import demoPkg.DBConn; import mvc1.member.dto.MemberVO; public class MemberDAO { MemberDAO.java
/** • * 회원 정보 생성 • * @param dto • * @return boolean • */ • public boolean create (MemberVO dto) { • PreparedStatement pstmt = null; • String insertSQL = "INSERT INTO member(userid, username, userpw, regdate) VALUES(?,?,?,now())"; • int res = 0; • try { • conn = DBConn.mysqlConn(); • pstmt = conn.prepareStatement(insertSQL); • pstmt.setString(1, dto.getUserid()); • pstmt.setString(2, dto.getUsername()); • pstmt.setString(3, dto.getUserpw()); • res = pstmt.executeUpdate(); • } catch (Exception e) { • System.out.println(e.getMessage());
} finally { • try { • DBConn.close(conn, pstmt); • } catch (Exception e) { • e.printStackTrace(); • } • } • if (res > 0) • return true; • else • return false; • }
/** • * 회원 목록 보기 • * @return Vector • */ • public Vector list() { • Vector v1 = new Vector(); • Connection conn = null; • PreparedStatement pstmt = null; • ResultSet rs = null; • String listSQL = "SELECT seq, userid, username, userpw, regdate from MEMBER"; • try { • conn = DBConn.mysqlConn(); • pstmt = conn.prepareStatement(listSQL); • rs = pstmt.executeQuery(); • while(rs.next()) { • MemberVO dto = new MemberVO(); • dto.setSeq(rs.getInt("seq")); • dto.setUserid(rs.getString("userid")); • dto.setUsername(rs.getString("username")); • dto.setUserpw(rs.getString("userpw")); • dto.setRegdate(rs.getString("regdate"));
v1.addElement(dto); • } • } catch (Exception e) { • System.out.println(e.getMessage()); • } finally { • try { • DBConn.close(conn, pstmt, rs); • } catch (Exception e) { • e.printStackTrace(); • } • } • return v1; • }
/** • * 회원정보 상세보기 • * @param idVal • * @return MemberVO • */ • public MemberVO read (int seqVal) { • MemberVO dto = new MemberVO(); • Connection conn = null; • PreparedStatement pstmt = null; • ResultSet rs = null; • String readSQL = "SELECT userid, username, userpw, regdate FROM member WHERE seq=?"; • try { • conn = DBConn.mysqlConn(); • pstmt = conn.prepareStatement(readSQL); • pstmt.setInt(1, seqVal); • rs = pstmt.executeQuery(); • if(rs.next()) { • dto.setSeq(seqVal); • dto.setUserid(rs.getString("userid")); • dto.setUsername(rs.getString("username")); • dto.setUserpw(rs.getString("userpw")); • dto.setRegdate(rs.getString("regdate")); • }
} catch (Exception e) { • System.out.println(e.getMessage()); • } finally { • try { • DBConn.close(conn, pstmt, rs); • } catch (Exception e) { • e.printStackTrace(); • } • } • return dto; • }
/** • * 회원 정보 수정 • * @param dto • * @return boolean • */ • public boolean update (MemberVO dto) { • Connection conn = null; • PreparedStatement pstmt = null; • String updateSQL = "UPDATE member SET userid=?, username=?, userpw=?, regdate=now() WHERE seq=?"; • int res = 0; • try { • conn = DBConn.mysqlConn(); • pstmt = conn.prepareStatement(updateSQL); • pstmt.setString(1, dto.getUserid()); • pstmt.setString(2, dto.getUsername()); • pstmt.setString(3, dto.getUserpw()); • pstmt.setInt(4, dto.getSeq()); • res = pstmt.executeUpdate(); • } catch (Exception e) { • System.out.println(e.getMessage());
} finally { • try { • DBConn.close(conn, pstmt); • } catch (Exception e) { • e.printStackTrace(); • } • } • if (res > 0) • return true; • else • return false; • }
/** • * 회원정보 삭제 • * @param dto • * @return boolean • */ • public boolean delete (int seqVal) { • Connection conn = null; • PreparedStatement pstmt = null; • String deleteSQL = "DELETE FROM member WHERE seq=?"; • int res = 0; • try { • conn = DBConn.mysqlConn(); • pstmt = conn.prepareStatement(deleteSQL); • pstmt.setInt(1, seqVal); • res = pstmt.executeUpdate(); • } catch (Exception e) { • System.out.println(e.getMessage()); • } finally { • try { • DBConn.close(conn, pstmt);
} catch (Exception e) { • e.printStackTrace(); • } • } • if (res > 0) • return true; • else • return false; • }
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <html> <head> <title> MVC1 Member</title> <script language="javascript"> function validCheck(f){ return true; } function goList(){ location.href="./listMember.jsp"; } </script> </head> <body><h3>Demo6 : MVC1 member > 회원 입력폼</h3><hr> <table border="1" width="400"> <form method="post" action="./createProc.jsp" onSubmit="return validCheck(this)"> <tr><td>이름</td><td><input type="text" name="username"></td></tr> <tr><td>아이디 </td><td><input type="text" name="userid"></td></tr> <tr><td>비밀번호 </td><td><input type="text" name="userpw"></td></tr> <tr><td colspan="2" align="center"> <input type="submit" value=" 저장 "> <input type="button" value=" 목록 " onClick="javascript:goList()"> </td> </tr> </form> </table> </body> </html> inputMember.jsp
<%@page contentType="text/html; charset=euc-kr" pageEncoding="euc-kr"%> <% request.setCharacterEncoding("euc-kr"); %> <jsp:useBean id="dao" class="mvc1.member.dao.MemberDAO"/> <jsp:useBean id="dto" class="mvc1.member.dto.MemberVO"/> <jsp:setProperty name="dto" property="*"/> <% boolean flag = dao.create(dto); if(flag == true) { response.sendRedirect(“listMember.jsp”); } else { response.sendRedirect(“inputMember.jsp”); } %> createProc.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR” %> • <%@page import="java.util.*, mvc1.member.dto.*"%> • <% request.setCharacterEncoding("euc-kr"); %> • <jsp:useBean id="dao" class="mvc1.member.dao.MemberDAO"/> • <jsp:useBean id="dto" class="mvc1.member.dto.MemberVO"/> • <% • Vector vt = new Vector(); • vt = dao.list(); • %> • <html> • <head><title> MVC1 Member</title></head> • <body> • <h3>Demo6 : MVC1 member > 회원 목록</h3><hr> • <TABLE width="550" border="1"> • <tr> • <td>번호</td> • <td>이름</td> • <td>아이디</td> • <td>비밀번호</td> • <td>등록일</td> • </tr> listMember.jsp
<% if(vt.isEmpty()) { %> • <tr><td colspan='5'>등록된 회원이 없습니다</center></td></tr> • <% } else { • int viewNum = 1; • for(int i=0; i<vt.size(); i++) { • dto = (MemberVO)vt.get(i); • %> • <tr> • <td> • <a href="readMember.jsp?seq=<%=dto.getSeq()%>"><%=viewNum%></a> </td> • <td><%=dto.getUserid()%></td> • <td><%=dto.getUsername()%></td> • <td><%=dto.getUserpw()%></td> • <td><%=dto.getRegdate()%></td> • </tr> • <% • viewNum++; • } • } • %> • </TABLE>
<a href="./createMember.jsp">회원정보 입력</a> </BODY> </HTML>
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> • <% request.setCharacterEncoding("euc-kr"); %> • <jsp:useBean id="dao" class="mvc1.member.dao.MemberDAO"/> • <jsp:useBean id="dto" class="mvc1.member.dto.MemberVO"/> • <% • int seq = Integer.parseInt(request.getParameter("seq")); • dto = dao.read(seq); • %> • <html> • <head> • <title> MVC1 Member</title> • <script language="javascript"> • function goUpt(){ • document.memForm.action="updateProc.jsp"; • document.memForm.submit(); • } • function goDel(idVal){ • document.memForm.action="deleteProc.jsp"; • document.memForm.submit(); • } readMember.jsp
function goList(){ location.href="./listMember.jsp"; } </script> </head> <BODY> <h3>Demo6 : MVC1 member > 회원정보 상세보기</h3><hr> <TABLE width="550" border="1"> <form name="memForm" method="post"> <input type=hidden name=seq value="<%=dto.getSeq()%>"> <tr><td>번호 </td><td><%=dto.getSeq()%></td></tr> <tr> <td>아이디 </td> <td> <input type="text" name="userid" value="<%=dto.getUserid()%>"> </td> </tr>
<tr> <td>이름 </td> <td> <input type="text“ name="username“ value="<%=dto.getUsername()%>"> </td> </tr> <tr> <td>비밀번호</td> <td> <input type="text" name="userpw“ value="<%=dto.getUserpw()%>"> </td> </tr> <tr><td>등록일 </td><td><%=dto.getRegdate()%></td></tr> <tr> <td colspan="2" align="center"> <input type="button" value=" 수정" onClick="javascript:goUpt()"> <input type="button" value=" 삭제" onClick="javascript:goDel()"> <input type="button" value=" 목록 " onClick="javascript:goList()"> </td> </tr> </form> </TABLE> </BODY> </HTML>
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> • <% request.setCharacterEncoding("euc-kr"); %> • <jsp:useBean id="dao" class="mvc1.member.dao.MemberDAO"/> • <jsp:useBean id="dto" class="mvc1.member.dto.MemberVO"/> • <jsp:setProperty name="dto" property="*"/> • <% • boolean flag = dao.update(dto); • if(flag == true) { • String url = "listMember.jsp"; • response.sendRedirect(url); • } else { • String url = "readMember.jsp?seq="+dto.getSeq(); • response.sendRedirect(response.encodeRedirectURL(url)); • } • %> updateProc.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> • <jsp:useBean id="dao" class="mvc1.member.dao.MemberDAO"/> • <jsp:useBean id="dto" class="mvc1.member.dto.MemberVO"/> • <jsp:setProperty name="dto" property="*"/> • <% • boolean flag = dao.delete(dto.getSeq()); • if(flag == true) { • String url = "listMember.jsp"; • response.sendRedirect(url); • } else { • String url = "readMember.jsp?seq="+dto.getSeq(); • response.sendRedirect(response.encodeRedirectURL(url)); • } • %> deleteProc.jsp
Result [등록] [리스트] http://127.0.0.1/LKH_PRJ/Demo6/listMember.jsp [보기, 수정, 삭제]