MVC 모델 게시판

Download Report

Transcript MVC 모델 게시판

MVC 기반 게시판 작성
2007.03.22 Youbok Choi
구성
File Name
Info.
list.jsp
글 목록을 보여주는 JSP 파일
read.jsp
글 하나의 내용을 보여주는 JSP 파일
write.jsp
글 쓰기 폼을 보여주는 JSP 파일
write_ok.jsp
DB에 글 입력 작업 후에 진행되는 JSP 파일(주로 페이지 이동용으로 쓰임)
update.jsp
글 수정 폼을 보여주는 JSP 파일
update_ok.jsp
DB에 글 변경 작업 후에 진행되는 JSP 파일(주로 페이지 이동용으로 쓰임)
delete.jsp
글 삭제하기 위해 비밀번호 입력 폼을 보여주는 JSP 파일
delete_ok.jsp
DB에 글 삭제 작업 후에 진행되는 JSP 파일(주로 페이지 이동용으로 쓰임)
Command.properties
사용자 요청에 따른 처리를 mapping 해 놓은 property 파일
ControllerServlet.java
사용자 요청을 처리하는 Controller Servlet
CommandRequest.java
사용자 요청에 대한 처리를 담당하는 class 들에 대한 Interface
ListRequest.java
목록보기에 대한 요청 (list.do) 이 왔을 경우 처리하는 class
ReadRequest.java
내용보기에 대한 요청 (read.do) 이 왔을 경우 처리하는 class
WriteRequest.java
글 쓰기 폼에 대한 요청 (write.do) 이 왔을 경우 처리하는 class
UpdateRequest.java
글 수정 폼에 대한 요청 (update.do) 이 왔을 경우 처리하는 class
DeleteRequest.java
글 삭제에 대한 요청 (delete.do) 이 왔을 경우 처리하는 class
WriteOKRequest.java
글 쓰기 폼에서 넘어온 데이터를 DB에 넣는 요청 (write_ok.do) 이 왔을 경우 처리하는 class
UpdateOKRequest.java
글 수정 폼에서 넘어온 데이터를 DB에 반영하는 요청 (update_ok.do) 이 왔을 경우 처리하는 class
DeleteOKRequest.java
글 삭제 폼에서 넘어온 데이터를 DB에서 삭제하는 요청 (delete_ok.do) 이 왔을 경우 처리하는 class
DataBean.java
글에 대한 정보를 저장하는 Bean(table schema와 비슷함)
DBBean.java
각종 DB 관련한 처리를 담당하는 class
처리 흐름도

request
ControllerServlet
list.do
read.do
write.do
Command.properties
update.do
delete_ok.do
write_ok.do
CommandRequest
update_ok.do

위에서 찾은 class 에
서
request 및 DB처리

요청에 해당하는
class 찾기
list.do = /ListRequest
read.do = /ReadRequest
write.do = /WriteRequest
update.do = /UpdateRequest

해당 요청에 대해
처리한 후,
이동할 JSP 페이지 반환
delete_ok.do = /DeleteOKRequest
write_ok.do = /WriteOKRequest
update_ok.do = /UpdateOKRequest
RequestDispatcher dispatcher =
request.getRequestDispatcher(jsp페이지);
dispatcher.forward(request, response)
JSP 페이지

ListRequest
ReadRequest
WriteRequest
위에서 반환된 JSP 페이지로 이동
UpdateRequest
DeleteRequest
list.jsp
update.jsp
read.jsp
write.jsp
delete.jsp
write_ok.jsp
update_ok.jsp
delete_ok.jsp
WriteOKRequest
UpdateOKRequest
class 설명
Class Name
Info.
ControllerServlet
사용자의 요청(*.do)를 처리하는 Servlet
CommandRequest
사용자의 요청(*.do)에 따른 처리를 하는 class에 대한 Interface
ListRequest
(CommandRequest 구현)
list.do 요청이 왔을 경우 ControllerServlet에서 호출되어 request 처리(jsp 페이지에서 사용할 값들 설정) 및
DBBean 을 호출해서 DB 처리(글 목록 가져오기)를 하고 다음으로 처리될 jsp 페이지의 url을 반환해주는 class
ReadRequest
(CommandRequest 구현)
read.do 요청이 왔을 경우 ControllerServlet에서 호출되어 request 처리(jsp 페이지에서 사용할 값들 설정) 및
DBBean 을 호출해서 DB 처리(글 내용 가져오기)를 하고 다음으로 처리될 jsp 페이지의 url을 반환해주는 class
WriteRequest
(CommandRequest 구현)
write.do 요청이 왔을 경우 ControllerServlet에서 호출되어 request 처리(jsp 페이지에서 사용할 값들 설정) 를 하고
다음으로 처리될 jsp 페이지를 반환해주는 class
UpdateRequest
(CommandRequest 구현)
update.do 요청이 왔을 경우 ControllerServlet에서 호출되어 request 처리(jsp 페이지에서 사용할 값들 설정) 및
DBBean 을 호출해서 DB 처리(글 내용 가져오기)를 하고 다음으로 처리될 jsp 페이지의 url을 반환해주는 class
DeleteRequest
(CommandRequest 구현)
delete.do 요청이 왔을 경우 ControllerServlet에서 호출되어 request 처리(jsp 페이지에서 사용할 값들 설정)를 하고
사용자에게 보여줄 jsp 페이지를 반환해주는 class
WriteOKRequest
(CommandRequest 구현)
write_ok.do 요청이 왔을 경우 ControllerServlet에서 호출되어 request 처리 및 DBBean 을 호출해서 DB 처리(입력
된 내용을 DB에 넣기)를 하고 다음으로 처리될 jsp 페이지의 url을 반환해주는 class
UpdateOKRequest
(CommandRequest 구현)
update_ok.do 요청이 왔을 경우 ControllerServlet에서 호출되어 request 처리 및 DBBean 을 호출해서 DB 처리(변
경된 내용을 DB에 반영하기)를 하고 다음으로 처리될 jsp 페이지의 url을 반환해주는 class
DeleteOKRequest
(CommandRequest 구현)
delete_ok.do 요청이 왔을 경우 ControllerServlet에서 호출되어 request 처리 및 DBBean 을 호출해서 DB 처리
(DB에서 삭제하기)를 하고 다음으로 처리될 jsp 페이지의 url을 반환해주는 class
DataBean
하나의 글에 해당하는 데이터를 담는 Bean(table schema와 비슷)
DBBean
DB 처리를 담당하는 Bean(read, write, update, delete 등 처리)
class diagram
Servlet
HttpServlet
CommandRequest
+ requestPro()
ControllerServlet
ListRequest
DeleteOKRequest
+ requestPro()
+ requestPro()
+ init()
# doGet()
# doPost()
- requestPro()
DataBean
-
title
writer
content
regdate
passwd
+
+
+
+
+
getTitle()
getWriter()
getContent
getRegdate()
getPasswd()
DBBean
WriteOKRequest
ReadRequest
+ requestPro()
+ requestPro()
+read()
+update()
+write()
+delete()
UpdateRequest
+ requestPro()
DeleteRequest
+ requestPro()
UpdateOKRequest
+ requestPro()
DB Schema
CREATE TABLE 'jsptest'.'board' (
'idx' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'primary key',
'writer' VARCHAR(45) NOT NULL COMMENT '작성자',
'subject' VARCHAR(200) NOT NULL COMMENT '제목',
'content' TEXT NOT NULL COMMENT '내용',
'email' VARCHAR(50) COMMENT '메일주소',
'passwd' VARCHAR(15) NOT NULL COMMENT '비밀번호',
'regdate' DATETIME NOT NULL DEFAULT 'curdate()' COMMENT '등록일',
'hit' INTEGER UNSIGNED NOT NULL DEFAULT 0 COMMENT '조회수',
'group_id' INTEGER UNSIGNED NOT NULL COMMENT '그룹ID',
'group_step' SMALLINT UNSIGNED NOT NULL COMMENT '그룹내 순서',
'group_level' SMALLINT UNSIGNED NOT NULL COMMENT '그룹내 level',
'ip' VARCHAR(20) COMMENT '작성자 IP',
‘filename‘ varchar(100) comment '파일명‘,
‘filesize‘ integer unsigned deafult 0 comment '파일크기‘,
PRIMARY KEY('idx')
)
ENGINE = InnoDB;
UI (list)
UI (read)
UI (reply)
UI (update)
UI (delete)