티스토리 뷰
이 좋은 자료를 왜 많은 분들이 찾지 않는지 이해할 수 없군요
그래서 제가 보기 좋게 설명을 하고자 합니다.
Model2로 만드는 게시판
모델 1과 모델 2
JSP―――――――〉Model
〈―――――――
모델1은 jsp 페이지에서 화면을 보여주고 요청을 하게 되면 페이지에서 직접 Model에 접근하여 처리를 하게 된다.
- 데이터베이스 연동하는 jsp페이지를 만들 때 디자인 부분과 데이터베이스와 연동하는 로직 부분이 모두 같은 페이지에 코딩을 하게 되는 방식
- 모델2는 디자인 부분과 로직 부분을 나누어서 개발하기 때문에, 디자이너는 디자인 부분만 프로그래머는 로직 부분만 담당하므로 개발에 열중할 수 있다.
코딩도 모두 jsp페이지에서 하는 것이 아닌 각 담당하는 부분의 페이지가 독립적(디자이너는 JSP페이지, 프로그래머는 JAVA클래스)으로 존재하므로 각자 개발을 다 끝낸 후에 합치기만 하면 된다.
MVC Pattern
MVC ( Model,View,Controller)
- 화면 출력 : View
- 데이터베이스와 연동하는 부분등의 로직 부분 : Model
- Controller : 위 두 부분을 적절하게 연결시켜주는 역할
모델2는 Model과 View를 독립적으로 코딩하기 때문에 Controller를 만들어서 Model과 View 사이에 개입하여 서로 연동하는 역할을 해주어야 한다.
Controller (서블릿)
Controller는 요청을 받아서 요청을 해당하는 Model과 View를 호출하는 역할만 하기 때문에 View처럼 JSP 페이지로 구현할 수 없다.
Controller는 보여지는 페이지가 아닌 연결시켜 주는 통로 역할만 할 뿐이다.
Controller는 MVC패턴에서 중심 역할을 한다는 것과 반드시 서블릿으로 이루어져야 한다.
View ( JSP )
View는 MVC 패턴 중 화면 출력 부분에 해당된다.
화면 출력을 담당하므로 JSP 페이지로 구성
View에서는 절대 데이터베이스 연동과 같은 비즈니스로직을 구현하지 않으며, Controller를 통해서 Model에서 처리한 결과를 화면에 출력할 때 사용
Model ( JavaBean )
Model은 MVC에서 실제로 비즈니스 로직을 처리하는 부분
Model은 비즈니스 로직을 처리하여 결과를 Controller를 통해 View 페이지로 전달
데이터 베이스 부분을 Model에서 구현
예를 들어 게시판을 개발할 경우 게시판에 글을 등록하는 부분, 게시판 글 삭제부분, 게시판 글 수정부분 등의 작업은 모두 Model에서 데이터 베이스 연동되어 처리된다.
처리가 완료되면 그 결과를 Controller를 통해서 View로 전달하여 처리된 내용이 화면에 표시된다.
Model은 JavaBean이라고 부르며 이 파일은 클래스 파일로 이루어져 있다.
실제로 Model클래스의 비즈니스 로직을 가져다가 쓰는 곳은 Controller와 Model 사이에 존재하는 Command 클래스이다.
〈――
DB 설계
CREATE TABLE BOARD(
BOARD_NUM INT, //글번호
BOARD_NAME VARCHAR2(20), //글작성자
BOARD_PASS VARCHAR2(15), //글 비밀번호
BOARD_SUBJECT VARCHAR2(50), //글 제목
BOARD_CONTENT VARCHAR2(2000), //글 내용
BOARD_FILE VARCHAR2(50), //글에 첨부파일 이름
BOARD_RE_REF INT, //글 답변시 참조되는 글 번호
BOARD_RE_LEV INT, //답변 글의 깊이
BOARD_RE_SEQ INT, //답변 글의 순서
BOARD_READCOUNT INT, //글의 조회수
BOARD_DATE DATE, //글 작성날짜
PRIMARY KEY(BOARD_NUM)
);
게시판 페이지(View)
페이지 파일 |
설명 |
qna_board_list.jsp |
게시판의 목록을 보여주는 페이지 |
qna_board_view.jsp |
게시판 글 내용 보여주는 페이지 |
qna_board_write.jsp |
게시판 글 쓰기 폼 페이지 |
qna_board_reply.jsp |
게시판 글 답변 폼 페이지 |
qna_board_modify.jsp |
게시판 글 수정 폼 페이지 |
qna_board_delete.jsp |
게시판 글 삭제 페이지 |
Action 클래스
Class File |
설명 |
BoardAddAction.java |
글 등록할 때 호출되는 Action 클래스 |
BoardDeleteAction.java |
글 삭제할때 호출 |
BoardDetailAction.java |
글 내용을 확인할 때 |
BoardListAction.java |
글 목록을 확인할 때 |
BoardModifyAction.java |
수정처리를 하는 클래스 |
BoardModifyView.java |
수정 폼을 보여주는 클래스 |
BoardReplyAction.java |
답변 처리를 하는 클래스 |
BoardReplyView.java |
답변 폼을 보여주는 클래스 |
|
net.board.action |
이상으로 글을 마칩니다.
아, 참고로 다음 글에는 코드소개와 코드분석을 할 예정입니다.
감사합니다. 꾸~벅