카테고리 없음
[Project] 게시판 글보기, 수정, 삭제.
321
2021. 2. 10. 10:17
지난 시간에 만들었던 게시판 목록에서 글 제목을 클릭하면 나오는 글 내용을 구현하려고 한다.
글보기기능
1. board.jsp에서 제목을 클릭하면 bId가 list.bid로 반환되도록 쿼리스트링을 설정한다.
href를 보면 boardView.do로 bId의 값을 list.bid로 가져가서 실행한다는 것을 알 수 있다
만약 글번호 5를 클릭하면 주소와 내용을 이렇게 나올 것이다.
2. 서블릿 작성
1번 과정에서 boardView.do를 실행하는 href를 (list.btitle) 클릭하면 /boardView.do를 실행하는 서블릿으로 넘어온다.
3. DAO에서 기능작성
4. 서블릿 나머지작성
5. 클릭하면 나오는 boardView.jsp작성
+) 글 볼 때마다 조회수가 추가되게 하고 싶다.
DAO클래스에 hit기능추가
boardView메서드 실행 첫 단계에 hit을 추가해 준다.
글수정하기/ 글삭제하기
1. 글 수정할 때는 수정페이지가 필요하고, 글 삭제할 때는 페이지가 따로 필요하지 않기 때문에 다음과 같이 boardView.jsp 하단에 추가할 수 있다.
2. DAO에서 작성한 modify 함수
public void modify(String btitle, String bcontent, String bid) {
String sql = "update webboard set btitle=?, bcontent=? where bid=?";
try {
conn = getConnection();
ps=conn.prepareStatement(sql);
ps.setString(1, btitle);
ps.setString(2, bcontent);
ps.setString(3, bid);
rs=ps.executeQuery();
}catch(Exception e) {
e.printStackTrace();
}finally {
try {
if(rs!=null) rs.close();
if(ps!=null) ps.close();
if(conn!=null) conn.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
DAO에서 구현한 delete기능
public void delete(String bid) {
String sql= "delete from webboard where bid=?";
try {
conn = getConnection();
ps=conn.prepareStatement(sql);
ps.setString(1, bid);
rs=ps.executeQuery();
}catch(Exception e) {
e.printStackTrace();
}finally {
try {
if(rs!=null) rs.close();
if(ps!=null) ps.close();
if(conn!=null) conn.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
3. 서블릿 설정
else if(com.equals("/delete.do")) {
viewPage="board.do";
String bid=(String)request.getParameter("bid");
BoardDAO.getInstance().delete(bid);
}else if(com.equals("/modify.do")) {
viewPage="board.do";
String btitle=request.getParameter("btitle");
String bcontent=request.getParameter("bcontent");
String bid=request.getParameter("bid");
BoardDAO.getInstance().modify(btitle, bcontent, bid);
ArrayList<BoardDTO> list=BoardDAO.getInstance().boardView(bid);
request.setAttribute("list", list);
}
4. modify.jsp 작성 /delete는 jsp파일 필요하지 않아서 스킵
- 글보기 기능에서 불러올 부분이 하나뿐이라서 c:forEach안 써도 됨