13장 자바빈과 데이터베이스를 연동한 게시판 시스템 이장에서 배울 내용 : 이 장에서는 웹 프로그래밍의 패턴을 이해하기 위해 게시판 시스템을 작성한다. 게시판 시스템은 전형적인 웹 프로그래밍에 필요한 구조를 가지고 있다. 글쓰기(insert), 글목록 및 내용보기(select), 글수정(update), 글삭제(delete)라는 웹 프로그래밍의 기본구조 패턴을 가지고 있다. 따라서 이것을 이해하면 어떠한 웹 어플리케이션을 작성하게 되더라도 문제를 해결할 수 있는 능력이 생기게 된다. 김은옥(oda94@naver.com)
목차 게시판 시스템의 기본구조 테이블 작성 게시판 자바빈 작성 게시판 JSP페이지 작성
게시판 시스템의 기본구조 게시판 시스템은 크게 글쓰기, 글목록, 글읽기, 글수정, 글삭제로 나뉠 수 있음.
게시판 시스템의 기본구조 글쓰기: 데이터베이스 테이블에 레코드를 추가 글목록: 테이블의 레코드를 검색 글읽기: 특정 레코드만을 검색 글수정: 레코드의 내용을 갱신하는 것 글삭제: 레코드를 삭제하는 것
테이블 작성 board테이블의 구조 create table board( num int not null primary key auto_increment , writer varchar(10) not null, email varchar(30) , subject varchar(50) not null, passwd varchar(12) not null, reg_date datetime not null, readcount int default 0, ref int not null, re_step smallint not null, re_level smallint not null, content text not null, ip varchar(20) not null );
테이블 작성 board테이블의 각 필드에 대한 설명 필드명 설 명 num 글번호를 저장하는 필드, 기본키 이고 auto_increment로 자동으로 글 번호를 증가시킨다. writer 글쓴이를 저장하는 필드 email 이메일을 저장하는 필드, 유일하게 null값을 허용한다. subject 글제목을 저장하는 필드 passwd 글의 비밀번호를 저장하는 필드 reg_date 글을 쓴 날짜를 저장하는 필드 readcount 글의 조회수를 저장하는 필드 ref 글을 그룹화하기 위한 필드 re_step 제목글과 답변글의 순서를 정리하기 위한 필드 re_level 글의 레벨을 저장하는 필드 content 글내용을 저장하는 필드 ip 글쓴이의 ip를 저장하는 필드
게시판 자바빈 작성 게시판 시스템에서의 JSP페이지와 자바빈 그리고 DB와의 관계
게시판 자바빈 작성 데이터 저장빈(BoardDataBean) 프로퍼티 명 해당 메소드 num 글번호 setNum(int num) : num값 저장 getNum() : 저장된 num값 가져옴 writer 작성자 setWriter(String writer) : writer값 저장 getWriter(String writer) : 저장된writer값 저장 subject 글제목 setSubject(String subject) : subject값 저장 getSubject(String subject) : 저장된subject값 저장 email 이메일 setEmail(String email): email값 저장 getEmail() : 저장된 email값 가져옴 content 글내용 setContent(String content) : content값 저장 getCentent(String content) : 저장된content값 저장 passwd 비밀번호 setPasswd(String passwd): passwd값 저장 getPasswd() : 저장된 passwd값 가져옴 reg_date 글쓴 날짜 setReg_date(Timestamp reg_date): reg_date값 저장 getReg_date() : 저장된 reg_date값 가져옴
게시판 자바빈 작성 데이터 저장빈(BoardDataBean) 프로퍼티 명 해당 메소드 num 글번호 setNum(int num) : num값 저장 readcount 조회수 setReadcount(int readcount): readcount값 저장 getReadcount() : 저장된 readcount값 가져옴 ip 글 작성자의 IP setIp(String ip):ip값 저장 getIp() : 저장된 ip값 가져옴 ref 글의 그룹번호 setRef(String ref): ref값 저장 getRef() : 저장된 ref값 가져옴 re_step 제목글과 답변글의 순서 setRe_step(String re_step): re_step값 저장 getRe_step() : 저장된 re_step값 가져옴 re_level 글의 레벨 setRe_level(String re_level): re_level값 저장 getRe_level() : 저장된 re_level값 가져옴
게시판 자바빈 작성 DB처리빈(BoardDBBean) 메소드명 하는 작업 getInstance() getConnection() 쿼리 작업에 사용할 Connection객체를 리턴한다. insertArticle(BoardDataBean article) 새로운 글을 board테이블에 추가한다. 글 입력 처리에 사용한다. getArticleCount() board테이블의 전체레코드의 수를 받아온다. 글 목록에서 글 번호 및 전체레코드수를 표시할 때 사용된다. getArticles(int start, int end) start부터 end개수만큼의 레코드를 board테이블에서 검색한다. 글 목록 보기에서 사용된다. getArticle(int num) id에 해당하는 레코드를 board테이블에서 검색한다. 글 내용보기에서 사용된다. updateGetArticle(int num) id에 해당하는 레코드를 board테이블에서 검색한다. 글 수정 폼에서 사용한다. updateArticle(BoardDataBean article) 수정된 글의 내용을 갱신할 때 사용된다. 글 수정 처리에서 사용한다. deleteArticle(int num, String passwd) id에 해당하는 레코드를 board테이블에서 삭제한다. 글 삭제 처리에서 사용한다.
게시판 JSP페이지 작성 게시판 시스템은 크게 두 개의 흐름으로 나눌 수 가 있음. 게시판에 글을 입력해서 글 목록과 글의 내용을 보는 것 글의 내용보기에서부터 답변글쓰기, 글 수정, 글 삭제를 수행하는 것.
게시판 JSP페이지 작성
게시판 JSP페이지 작성 게시판 시스템에서 사용하는 페이지가 하는 작업 페이지 명 하는 작업 writeForm.jsp 게시판에 추가할 글을 입력하는 페이지. writePro.jsp 입력된 글을 넘겨받아 글 추가를 처리하는 페이지. list.jsp 게시판의 글 목록을 표시하는 페이지. content.jsp 선택한 글의 내용을 보여주는 페이지. updateForm.jsp 글을 수정하기위한 폼을 제공하는 페이지. updatePro.jsp 글의 수정을 처리하는 페이지. deleteForm.jsp 글을 삭제하기 위한 폼을 제공하는 페이지. deletePro.jsp 글의 삭제를 처리하는 페이지. 기타 페이지 color.jspf : 색상을 설정하는 조각코드 페이지. style.css : 스타일시트파일 script.js : 자바스크립트 파일
게시판 JSP페이지 작성 게시판에 글쓰기 구현
게시판 JSP페이지 작성 게시판에 글 목록보기 구현
게시판 JSP페이지 작성 게시판에 글 내용보기 구현
게시판 JSP페이지 작성 게시판에 글 수정하기 구현
게시판 JSP페이지 작성 게시판에 글 삭제하기 구현