JSP MVC2모델 게시판만들기 ② 게시글 목록/등록/상세내용

2017. 5. 4. 13:12JSP




[ index.jsp ]


페이지의 시작 소스

"BoardServlet?command=board_list"    BoardServlet.java 로 command를 가지고 이동한다



[ BoardServlet.java ]


index.jsp에서 넘어온 command에는 board_list가 들어있다

따라서 action = af.getAction(command) 에서 BoardListAction.java 객체가 생성된다

action.execute(request,response) 실행된다



[ BoardListAction.java ]


BoardDAO객체의 selectAllBoards()객체를 통해서 "list"로 테이블의 모든 데이터들을 가져온다

request에 "boardList" 이름으로 "list"를 담아놓고 "boardList.jsp" 페이지로 이동한다



< selectAllBoards() >


DB에서 데이터를 가져온다

vo객체로 묶어준다

vo객체는 list로 저장해놓는다



[ boardList.jsp ]


C태그라이브러리를 이용해서 페이지에 뿌려주자

<a href="BoardServlet?command=board_write_form">게시글등록</a> ---①

<c:forEach var="board" items="${boardList}">

// boardList 리스트의 각 요소들을 화면에 뿌리는 반복문

<a href="BoardServlet?command=board_view&num=${board.num}"> ---②

    ${board.title}</a>

</c:forEach>


① 게시글 등록 폼 으로 이동할 수 있다 

② 제목을 클릭하면 게시글 상세보기 



[ 실행화면 ]


#1. 게시글 등록 


<a href="BoardServlet?command=board_write_form">게시글등록</a> 클릭!

# BoardServlet으로 이동, action = af.getConnection(command) => BoardWirteFormAction.execute() 로 진행



[ BoardWriteFormAction.java ]


# boardWrite.jsp 페이지로 이동



[ boardWrite.jsp ]


해당 페이지에서 작성한 내용은 BoardServlet으로 이동한다.

input타입의 속성에 hidden을 주고 command에 "board_write" 로 하여 같이 넘겨준다

submit하기전에 javascript의 boardCheck()함수를 거친다

< board.js > 


boardCheck() 함수

- 이름과 비밀번호 제목을 입력하지 않으면 해당 내용을 전송하지 않는다


# command=board_write를 들고 BoardServlet으로 이동한다

# BoardServlet에서 action = af.getAction(command) => BoardWirteAction.execute() 로 진행된다



[ BoardWriteAction.java ]



boardWrite.jsp 에서 넘어온 데이터들을 받아서 "vo" 객체에 저장한다.

BoardDAO의 insertBoard(vo) 메서드를 통해서 DB에 저장시킨다

마지막으로 boardList.jsp 페이지로 복귀한다


< insertBoard >




[ 실행화면 ]



#2. 게시글 상세내용보기


<a href="BoardServlet?command=board_view&num=${board.num}">${board.title}</a> 클릭!

# BoardServlet으로 이동 action = af.getAction(command) => BoardViewACtion.execute() 



[ BoardViewAction.java ]


command와 함께 넘어온 게시글번호 num 을 변수로 저장해 놓는다

num에 해당하는 게시글의 조회수증가메서드 updateReadCount(num)

num에 해당하는 게시글의 데이터를 vo객체로 불러오는 selectOneBoardByNum(num)

vo객체는 "board"라는 이름으로 request로 boardView.jsp 로 넘겨준다


< updateReadCount(num) >


< selectOneBoardByNum(num) >


vo 객체를 선언하고 DB에서 가져온 데이터들을 저장해서 return 시킨다



[ boardView.jsp (1) ]

[ boardView.jsp (2) ]


request로 넘어온 vo객체 "board" 의 데이터들을 화면에 뿌려준다.



[ 실행 화면 ]


해당 페이지에서 게시물 수정 , 게시물 삭제 버튼을 통해서 수정과 삭제를 할 수 있다