웹 프로그래밍 설계 및 실습 mvc1 member

34
웹 웹웹웹웹웹 웹웹 웹 웹웹 MVC1 Member 이이이 ([email protected])

Upload: carissa-booker

Post on 30-Dec-2015

76 views

Category:

Documents


1 download

DESCRIPTION

웹 프로그래밍 설계 및 실습 MVC1 Member. 이경화 ([email protected]). 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] - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 웹 프로그래밍 설계 및 실습 MVC1 Member

웹 프로그래밍 설계 및 실습MVC1 Member

이경화 ([email protected])

Page 2: 웹 프로그래밍 설계 및 실습 MVC1 Member

First off

http://java.sun.com/http://java.sun.com/j2se/1.4.2/docs/api/index.htmlhttp://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]

2

Page 3: 웹 프로그래밍 설계 및 실습 MVC1 Member

Contents

• Basic MVC Pattern• JSP Model 1 architecture - Member

3

Page 4: 웹 프로그래밍 설계 및 실습 MVC1 Member

Column Add in Table (1/2)

Page 5: 웹 프로그래밍 설계 및 실습 MVC1 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;

Page 6: 웹 프로그래밍 설계 및 실습 MVC1 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

Page 7: 웹 프로그래밍 설계 및 실습 MVC1 Member

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

Page 8: 웹 프로그래밍 설계 및 실습 MVC1 Member

/** * 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

Page 9: 웹 프로그래밍 설계 및 실습 MVC1 Member

/** * 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());}

}}

Page 10: 웹 프로그래밍 설계 및 실습 MVC1 Member

/** * 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());

} } }

Page 11: 웹 프로그래밍 설계 및 실습 MVC1 Member

/** * 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

Page 12: 웹 프로그래밍 설계 및 실습 MVC1 Member

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

Page 13: 웹 프로그래밍 설계 및 실습 MVC1 Member

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

Page 14: 웹 프로그래밍 설계 및 실습 MVC1 Member

/** * 회원 정보 생성 * @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());

Page 15: 웹 프로그래밍 설계 및 실습 MVC1 Member

} finally {try { DBConn.close(conn, pstmt);} catch (Exception e) { e.printStackTrace();}

}

if (res > 0) return true;

else return false;

}

Page 16: 웹 프로그래밍 설계 및 실습 MVC1 Member

/** * 회원 목록 보기 * @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"));

Page 17: 웹 프로그래밍 설계 및 실습 MVC1 Member

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;

}

Page 18: 웹 프로그래밍 설계 및 실습 MVC1 Member

/** * 회원정보 상세보기 * @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")); }

Page 19: 웹 프로그래밍 설계 및 실습 MVC1 Member

} catch (Exception e) { System.out.println(e.getMessage());

} finally { try {

DBConn.close(conn, pstmt, rs);} catch (Exception e) {

e.printStackTrace();}

}return dto;

}

Page 20: 웹 프로그래밍 설계 및 실습 MVC1 Member

/** * 회원 정보 수정 * @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());

Page 21: 웹 프로그래밍 설계 및 실습 MVC1 Member

} finally {try {

DBConn.close(conn, pstmt);} catch (Exception e) {

e.printStackTrace();}

}

if (res > 0) return true;

else return false;

}

Page 22: 웹 프로그래밍 설계 및 실습 MVC1 Member

/** * 회원정보 삭제 * @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);

Page 23: 웹 프로그래밍 설계 및 실습 MVC1 Member

} catch (Exception e) { e.printStackTrace();

} }

if (res > 0) return true;

else return false;

}

Page 24: 웹 프로그래밍 설계 및 실습 MVC1 Member

<%@ 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 25: 웹 프로그래밍 설계 및 실습 MVC1 Member

<%@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 26: 웹 프로그래밍 설계 및 실습 MVC1 Member

<%@ 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

Page 27: 웹 프로그래밍 설계 및 실습 MVC1 Member

<% 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>

Page 28: 웹 프로그래밍 설계 및 실습 MVC1 Member

<a href="./createMember.jsp"> 회원정보 입력 </a></BODY></HTML>

Page 29: 웹 프로그래밍 설계 및 실습 MVC1 Member

<%@ 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

Page 30: 웹 프로그래밍 설계 및 실습 MVC1 Member

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>

Page 31: 웹 프로그래밍 설계 및 실습 MVC1 Member

<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 32: 웹 프로그래밍 설계 및 실습 MVC1 Member

<%@ 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 33: 웹 프로그래밍 설계 및 실습 MVC1 Member

<%@ 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

Page 34: 웹 프로그래밍 설계 및 실습 MVC1 Member

Result

http://127.0.0.1/LKH_PRJ/Demo6/listMember.jsp

[ 보기 , 수정 , 삭제 ]

[ 리스트 ]

[ 등록 ]