게시판을 누르면 게시글 목록이 보이는 '전체 게시글 조회' 기능을 했다.
이번에는 제목을 누르면 자세한 내용이 보이는 '게시글 하나 조회' 기능을 해보려고 한다.
main.jsp 에서 제목을 누르면 one이라는 요청을 보내준다.
controller (SEVBoardServlet.java)로 가서 one이라는 요청을 받아주고 이는 biz의 selectOne( ) 메소드로 처리해준다.
biz는 또 dao의 selectOne( )메소드로 넘겨준다.
Dao에서는 db에서 쓸 쿼리를 작성한다.
우리는 같이 넘어온 bd_no 에 따라 특정 게시글을 보여주는 select 문을 작성해준다.
DaoImpl 에서는 쿼리문 실행하고 값을 담아 리턴해준다.
dao까지 잘 마쳤다면 controller로 돌아와 요청 one을 마저 끝내준다.
dao 에서 넘겨준 dto 형식의 res를 잘 가져와서 dispatcher 방식으로 selectone.jsp로 함께 보내준다.
selectone.jsp
이 jsp는 특정 게시글의 데이터를 보여주는 jsp로 미리 그 데이터를 담아줄 테이블을 만들어 준다.
간단히 게시글을 쓴 사람 이름, 제목 내용 정도만 보여주기로 했다.
밑에 버튼까지 만들어준다.
여기까지 하고 실행해보면
이렇게 게시글 보기까지 구현이 된걸 볼 수 있다.
이번에는 C 기능인 글쓰기 기능을 구현해보려한다.
글쓰기 버튼이 있는 main.jsp에 가서 요청은 insert로 보내준다.
요청 insert는 servlet에 도착해 굳이 어떤 데이터를 담을 필요 없이 단순 페이지 전환 방식으로 글쓰기 화면인 insert.jsp로 넘겨준다.
insert.jsp
여기는 글쓰기 화면으로 form 태그와 table을 이용해준다.
간단히 name, title, content만 작성할 수 있게 해주고 입력버튼의 타입은 submit으로 form을 바로 bdinsert요청으로 보내게 해준다.
servlet에서 bdinsert를 받아주고 name, title content를 받아서 얘들만 biz의 insert( )메소드로 보내주려는데 에러가 뜬다.
이건 dto에서 string name, string title, string content 형식의 매개변수 생성자가 없기 때문이기에 dto에서 만들어주면 된다.
dto에서 insert에서 쓸 매개변수 생성자를 만들어주고... biz로 넘어간다.
biz에서 insert( )메소드를 dao의 insert( )메소드로 넘겨주었다.
dao에서는 insert 쿼리문을 만들어줬고
daoImpl에는 insert( )메소드를 만들어줬다. 쿼리를 실행해주고 데이터를 담아 불리언 값으로 리턴해줬다.
만약 데이터가 잘 들어가졌다면 true 값으로, 아니라면 false 값으로 리턴해줬다.
그대로 servlet으로 돌아가 true 면 작성 성공 알림 메소드(jsResponse)를, false라면 그냥 다시 insert 요청으로 보내주기로 했다.
jsResponse 알림 메소드는 나중에 수정에서도, 삭제에서도 쓸것이니 중복작성하지 않게 밑에 따로 만들어줬다.
이렇게 글쓰기 / insert / C 기능까지 구현해봤다.
다음은 U D 기능을 구현해본다.
댓글