1. 게시판을 만들기 위해 테이블을 먼저 생성한다.

create table board(
 no number,
 title varchar2(150) not null,
 writer varchar2(30) not null,
 content varchar2(4000) not null,
 writedate varchar2(14) not null,
 viewcount number not null,
 --답변과 관련된 속성
 refamily number not null,
 restep number not null,
 relevel number not null,
 constraint board_pk primary key(no)
)

2. 시퀀스(게시글번호)를 위해 시퀀스 번호를 생성한다.

select board_no_seq.nextval from dual;

3. 데이터 값을 담아둘 dto를 만든다.

board.dto

 

 

 

4. * utility 만들기
class
package : board.util
name : DBUtil
           Utilities

 

 

 

5. service만들기

 

 

 

6. controller 만들기

interface
package : board.controller
name : Controller

 

 

class : ControlerCommandMapping

 

 

 

servlet
package : board.controller
name : BoardFrontController : mapping - /boardController

 

 

 

* 위와 같이 하면 기본적으로 DB연동할 준비를 하고 패턴을사용하고 기본 함수를 완성해 둔 것임 

7. 새 글작성을 한다.

- ${initParam.context_root }를 사용하기 위해 web.xml에 아래와 같이 적어 넣는다.

 

 

- write_form.jsp를 만든다.

 

 

- boardController 전송을 누르면 연결 시킨다.

 

4. 실제로 WriteContentController()를 만든다.
controller -> BoardController -> WriteContentController

 

- 서비스를 통해 DB와 연결하여 값을 얻어오게 한다.

BusinessService -> BoardService.writeContent(BoardDTO)

 

 

- DB에서값을 얻어온다. dao 작성

DAO -> BoardDAO.selectBoardNo : 글번호 조회
            BoardDAO.insertContent(BoardDTO) - 새글, 답변글



- 화면을 만든다.
응답 -> show_content.jsp : 정상처리
           error.jsp : 오류 발생시

 

 

 

 

* BoardService와 BoardDAO는 싱글턴패턴으로 만들어라.

 

* lib에 javax.servlet.jsp.jstl-1.2.1.jar, javax.servlet.jsp.jstl-api-1.2.1.jar 넣기

 

* 결과

 

* 전체 글목록 조회(no paging)

시작 : show_content.jsp - 링크(command=list_all)
Ctr : BoardAllListController.execute()
BoardService : getBoardAllList() : ArrayList<BoardDTO>
BoardDAO : selectBoardAllList() : ArrayList<BoardDTO
                 - 정렬 : refamily 내림차순(desc)
응답 : list_all.jsp

 

시작 : show_content.jsp - 링크(command=list_all)

 

 

- Ctr : BoardAllListController.execute()

 

 

 

 

 

- service

 

- dao

 

- list_all.jsp

 

 

* 결과

 

 

- 제목으로 검색하기

 

 

 

 

 

 

 

 

 

 

 

 - 결과

 

 

-------------수정폼 조회하기------------

시작 : show_content.jsp에서 글수정 링크 클릭 command : modify_form
Ctr : ModifyFormController.execute();
BoardService : getContentByNOForForm(int no) : BoardDTO
BoardDAO : selectContentByNO(int no) : BoardDTO
응답 : modify_form.jsp

 

 

Ctr : ModifyFormController.execute();

 

 

 

 

 

BoardService : getContentByNOForForm(int no) : BoardDTO

 

 

 

 

 

* 결과보기

 

-------------글 수정 처리---------------

시작 : modify_form.jsp에서 수정버튼 클릭 command : modify_content
Ctr : ModifyContentController.execute();
BoardService : modifyContent(BoardDTO bdto) : void
BoardDAO : updateContent(BoardDTO bdto)
- 제목, 작성자, 내용, 일시

응답 : show_content.jsp

 

 

 

 

 

 

 

 

 

 

 

* 결과보기

 

 

 

 

시작 : show_content.jsp 삭제링크 클릭. cmd : delete_content
Ctr : DeleteContentController.execute()
BoardService : deleteContentByNO(int no) : void
BoardDTO : deleteContentByNO(int no)

응답 : list_all.jsp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* 결과보기

 

 

 

 

 

-------------------답변폼 조회----------------------

시작 : show_content.jsp 답변링크 클릭. command : reply_form
Ctr : ReplyFormController.execute()
BoardService : getContentByNOForForm(int no) : BoardDTO
BoardDAO : selectContentByNO(int no) : BoardDTO
응답 : reply_form.jsp

 

 

 

 

 

 

 

 

 

 

* 결과보기

 

 

 

---------------------------답변처리----------------- 

시작 : reply_form.jsp 답변버튼 클릭. command : reply_content
Ctr : ReplyContentController.execute()
BoardService : replyContent(BoardDTO)
BoardDAO : updateRestep(int refamily, int restep)
                  selectBoardNO()
                  insertContent()

응답 : show_content.jsp

 

 

 

 

 

 

 

 

 

 

 

* 결과보기

 

 

 

 

 

Posted by 조은성
,