program/design pattern

MVC 게시판

yoursyun 2009. 4. 16. 12:30

invalid-file

mvc board source



정확한 형태의 MVC 인지... 의문이 좀 들긴 하지만, 구글링을 참조 하여 MVC 형태의 게시판을
제작해 보았습니다.

제작된 파일은 첨부된 파일을 확인 하시면 됩니다.
데이터 베이스는 mySQL을 써보았습니다.

[ 테이블 생성 구문 ]

# create table
CREATE TABLE tb_gWareBoard (
idx   int(4)  not null auto_increment  primary key -- 인덱스
, seq  int(4)  not null -- 게시물 순번
, parentidx   int(4)  not null DEFAULT 0 -- 부모 인덱스
, title  varchar(100) not null -- 게시물 제목
, userName char(20)  not null -- 작성자명
, userEmail varchar(100) not null DEFAULT ' ' -- 작성자메일
, contents  LONGTEXT not null -- 내용
, attachFileName varchar(100) not null DEFAULT ' ' -- 첨부파일명
, ref  int(4)  not null DEFAULT 0 -- 답변 게시물 아이디
, step  TINYINT  not null DEFAULT 0 -- 답변 레벨
, lvl  int(4)  not null DEFAULT 0 -- 답변 스레드
, isalert TINYINT  not null DEFAULT 0 -- 공지글 여부
, isdel  TINYINT  not null DEFAULT 0 -- 글내용 삭제 여부
, readcnt  int(4)  not null  DEFAULT 0 -- 읽음 횟수
, regip  char(15)  not null -- 작성자 아이피
, reguserid char(20)  not null -- 작성자 아이디
, regdate  timestamp(8)  DEFAULT  CURRENT_TIMESTAMP -- 작성일
)

[ 함수 생성 ]

# create function
delimiter $$

CREATE FUNCTION fn_Get_maxSeq(parents int) RETURNS int
BEGIN
 DECLARE maxSeq int(4);
 SET maxSeq = 0;
 SELECT if(isnull(MAX(seq)), 0, MAX(seq)) INTO maxSeq FROM tb_gWareBoard WHERE parentidx = parents;
 SET maxSeq = maxSeq + 1;
 return maxSeq;
END $$

delimiter ;

프로그램 내에서 함수를 이용 합니다. ( -_-; 맹글어 써보고 싶었습니다. )

폴더의 구성은 제 블로그 글중 JSP/Util use 의 Ant 사용법을 참조 해주세요.

개발 소스를 참조 (배포는 다른 형태 입니다) 하여 루틴의 예를 보여드리자면,

사용자 page request (http://localhost/gWare/~어쩌구저쩌구.do) -> control file
          -> call board class (보기, 다운로드등) -> view file dispatcher
사용자 action -> call 비즈니스 로직 (board class, file upload class)

사용자 page request  ex >
1. 사용자가 boardList.do 요청
2. 응용 프로그램 web.xml 에서 mapping 된 servlet class 호출
   여기서는 board.web.board_list class 가 호출 되어 집니다. (/src/board/web/board_list.java)
   해당 클래스에서 clsBoard 클래스를 사용 하여 비즈니스 로직을 처리 합니다.
3. board_list 클래스에서 request. getRequestDispatcher 메소드를 이용 하여
    view file에 매핑 합니다.
4. view file에서 EL 표현식과, JSTL을 이용 데이터를 표시 합니다.
     /web/groupboard/board_list.jsp  

*** 사용된 컴퍼넌트들 ***
첨부 파일의 /lib 폴더에 사용된 컴퍼넌트 파일들이 들어 있습니다.

반응형