Presentation is loading. Please wait.

Presentation is loading. Please wait.

방명록 제작. 목차  기본 레이아웃  DB 구조  방명록 구조  코드 설명  화면 설명.

Similar presentations


Presentation on theme: "방명록 제작. 목차  기본 레이아웃  DB 구조  방명록 구조  코드 설명  화면 설명."— Presentation transcript:

1 방명록 제작

2 목차  기본 레이아웃  DB 구조  방명록 구조  코드 설명  화면 설명

3 기본 레이아웃  수업시간에 한 방명록 코드를 사용  코드분석 및 이미지 작업 방명록 ( 수업 )

4 DB 구조  Oracle 사용 DB 구조 (DB 명 GUESTBOOK)

5 방명록 구조

6 guestbook_list.jsp <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR" errorPage="guestbook_error.jsp" import="java.util.*, jspbook.guestbook.*"%> function check(gb_id) { pwd = prompt(' 수정 / 삭제 하려면 비밀번호를 넣으세요 '); document.location.href="guestbook_control.jsp?action=edit&gb_id="+gb_id+"&upasswd="+pwd; } 방명록 : 목록화면 <% GuestBean gb = new GuestBean(); ArrayList datas = gb.getDBList(); %> 번호 작성자 전화번호 작성일 내용 ')> GuestBean 에 대한 gb 라는 객체를 생성 DB 에 접근하게 됨 DB 에 있는 내용만큼 반복하면서 게시판에 출력

7 guestbook_list.jsp 화면

8 guestbook_form.jsp 방명록 : 작성화면 작 성 자 email 전화번호 비밀번호 ※ 비밀번호는 최대 6 자리입니다.

9 guestbook_form.jsp 화면

10 guestbook_edit_form.jsp // 삭제 확인을 위한 자바스크립트 function delcheck() { // 메시지 창을 통해 YES/NO 확인 result = confirm(" 정말로 삭제하시겠습니까 ?"); if(result == true){ document.form1.action.value="delete"; document.form1.submit();} else return;} 방명록 : 수정화면 <% GuestBook guestbook = (GuestBook)request.getAttribute("gbook"); %> "> 작 성 자 "> email "> 전화번호 "> 비밀번호 "> ※ 비밀번호는 최대 6 자리입니다. 현재 수정할 글에 대한 작성자, 내용, 비밀번호 등의 정보를 가져와서 출력해주는 역할

11 guestbook_edit_form.jsp 화면

12 guestbook_control.jsp Insert title here <% String action = request.getParameter("action"); if(action.equals("list")) { response.sendRedirect("guestbook_list.jsp");} else if(action.equals("insert")) { if(gb.insertDB(guestbook)) { response.sendRedirect("guestbook_list.jsp");} else throw new Exception("DB 입력오류 ");} else if(action.equals("edit")) { GuestBook gbook = gb.getDB(guestbook.getGb_id()); if(!gbook.getGb_passwd().equals(request.getParameter("upasswd"))) { out.println(" alert(' 비밀번호가 틀렸습니다.!!');history.go(-1); ");} else { request.setAttribute("gbook",gbook); pageContext.forward("guestbook_edit_form.jsp");}} else if(action.equals("update")) { if(gb.updateDB(guestbook)) { response.sendRedirect("guestbook_list.jsp");} else throw new Exception("DB 갱신오류 ");} else if(action.equals("delete")) { if(gb.deleteDB(guestbook.getGb_id())) { response.sendRedirect("guestbook_list.jsp");} else throw new Exception("DB 삭제 오류 "); } else {out.println(" alert('action 파라미터를 확인해 주세요 !!!') ");} %> 작성글에 대한 리스트를 원할때 수행 글을 작성하기를 원할때 수행 글을 수정하기를 원할때 수행 글또는 내용을 갱신을 위해 수행 글을 삭제하기 위해서 수행

13 guestbook_error.jsp <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR" isErrorPage="true"%> 방명록 에러 방명록 처리중 에러가 발생 했습니다. 관리자에게 문의해 주세요.. 빠른시일내 복구하겠습니다. 에러내용 :

14 GuestBean.java 1/5 package jspbook.guestbook; import java.sql.*; import java.util.*; // 클래스 선언 public class GuestBean { // 데이터베이스 연결관련 변수 선언 Connection conn = null; PreparedStatement pstmt = null; // 데이터베이스 연결관련정보를 문자열로 선언 String jdbc_driver = "oracle.jdbc.driver.OracleDriver"; String jdbc_url = "jdbc:oracle:thin:@127.0.0.1:1521"; // 데이터베이스 연결 메서드 void connect() { // JDBC 드라이버 로드 try { Class.forName(jdbc_driver); // 데이터베이스 연결정보를 이용해 Connection 인스턴스 확보 conn = DriverManager.getConnection(jdbc_url,"jspdbuser","8510"); } catch (Exception e) { e.printStackTrace(); } // 데이터베이스 연결 종료 메서드 void disconnect() { if(pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); }

15 GuestBean.java 2/5 if(conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } // 데이터 갱신을 위한 메서드 public boolean updateDB(GuestBook guestbook) { connect(); String sql ="update GUESTBOOK set gb_name=?, gb_email=?, gb_date=sysdate, gb_tel=?, gb_passwd=?, gb_contents=? where gb_id=?"; try { pstmt = conn.prepareStatement(sql); // 인자로 받은 GuestBook 객체를 이용해 사용자가 수정한 값을 가져와 SQL 문 완성 pstmt.setString(1,guestbook.getGb_name()); pstmt.setString(2,guestbook.getGb_email()); pstmt.setString(3,guestbook.getGb_tel()); pstmt.setString(4,guestbook.getGb_passwd()); pstmt.setString(5,guestbook.getGb_contents()); pstmt.setInt(6,guestbook.getGb_id()); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); return false; } finally { disconnect(); } return true; }

16 GuestBean.java 3/5 // 게시물 삭제를 위한 메서드 public boolean deleteDB(int gb_id) { connect(); String sql ="delete from guestbook where gb_id=?"; try { pstmt = conn.prepareStatement(sql); // 인자로 받은 gb_id 프라이머리 키 값을 이용해 삭제 pstmt.setInt(1,gb_id); pstmt.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); return false; } finally { disconnect(); } return true; } // 게시물 등록 메서드 public boolean insertDB(GuestBook guestbook) { connect(); String sql ="insert into guestbook(gb_name,gb_email,gb_date,gb_tel,gb_passwd,gb_contents) values(?,?,sysdate,?,?,?)"; try { pstmt = conn.prepareStatement(sql); // 인자로 받은 GuestBook 객체를 통해 사용자 입력값을 받아 SQL 완성후 입력 처리 pstmt.setString(1,guestbook.getGb_name()); pstmt.setString(2,guestbook.getGb_email()); pstmt.setString(3,guestbook.getGb_tel()); pstmt.setString(4,guestbook.getGb_passwd()); pstmt.setString(5,guestbook.getGb_contents()); pstmt.executeUpdate();

17 GuestBean.java 4/5 } catch (SQLException e) { e.printStackTrace(); return false; } finally { disconnect(); } return true; } // 게시물 하나의 모든 정보를 가지고 오는 메서드 public GuestBook getDB(int gb_id) { connect(); String sql = "select * from guestbook where gb_id=?"; GuestBook guestbook = new GuestBook(); try { pstmt = conn.prepareStatement(sql); pstmt.setInt(1,gb_id); ResultSet rs = pstmt.executeQuery(); rs.next(); // 가져와 데이터를 GuestBook 객체로 만들어 리턴함. guestbook.setGb_id(rs.getInt("gb_id")); guestbook.setGb_name(rs.getString("gb_name")); guestbook.setGb_email(rs.getString("gb_email")); guestbook.setGb_date(rs.getDate("gb_date")); guestbook.setGb_tel(rs.getString("gb_tel")); guestbook.setGb_contents(rs.getString("gb_contents")); guestbook.setGb_passwd(rs.getString("gb_passwd")); rs.close(); } catch (SQLException e) { e.printStackTrace(); }

18 GuestBean.java 5/5 finally { disconnect(); } return guestbook; } // 게시물 목록 출력을 위해 전체 게시물을 가지고 오는 메서드 public ArrayList getDBList() { connect(); // 게시물 목록을 리턴하기 위한 ArrayList 객체 생성, 명시적으로 ArrayList 에 들어갈 데이터 타잎을 선언함. ArrayList datas = new ArrayList (); String sql = "select * from guestbook"; try { pstmt = conn.prepareStatement(sql); ResultSet rs = pstmt.executeQuery(); // 돌면서 ResultSet 을 이동하면서 모든 데이터 row 를 하나씩 가지고 와서 GuestBook 객체에 넣고 이를 다시 ArrayList 에 넣는 작업을 반복. while(rs.next()) { GuestBook guestbook = new GuestBook(); guestbook.setGb_id(rs.getInt("gb_id")); guestbook.setGb_name(rs.getString("gb_name")); guestbook.setGb_email(rs.getString("gb_email")); guestbook.setGb_date(rs.getDate("gb_date")); guestbook.setGb_tel(rs.getString("gb_tel")); guestbook.setGb_contents(rs.getString("gb_contents")); datas.add(guestbook); } rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally {disconnect();} // 처리가 끝나 ArrayList 를 리턴함. return datas;}}

19 GuestBook.java package jspbook.guestbook; import java.util.*; // 방명록 테이블 구조와 동일한 데이터 처리 클래 public class GuestBook { // 멤버변수 private int gb_id; private String gb_name; private String gb_email; private String gb_tel; private Date gb_date; private String gb_passwd; private String gb_contents; public String getGb_contents() {return gb_contents;} public void setGb_contents(String gb_contents) {this.gb_contents = gb_contents;} public Date getGb_date() {return gb_date;} public void setGb_date(Date gb_date) {this.gb_date = gb_date;} public String getGb_email() {return gb_email;} public void setGb_email(String gb_email) {this.gb_email = gb_email;} public int getGb_id() {return gb_id;} public void setGb_id(int gb_id) {this.gb_id = gb_id;} public String getGb_name() {return gb_name;} public void setGb_name(String gb_name) {this.gb_name = gb_name;} public String getGb_tel() {return gb_tel;} public void setGb_tel(String gb_tel) {this.gb_tel = gb_tel;} public String getGb_passwd() {return gb_passwd;} public void setGb_passwd(String gb_passwd) {this.gb_passwd = gb_passwd;} }


Download ppt "방명록 제작. 목차  기본 레이아웃  DB 구조  방명록 구조  코드 설명  화면 설명."

Similar presentations


Ads by Google