Bigfat

[Web] 글 삭제 구현하기 (게시판 구현) 본문

Java/web

[Web] 글 삭제 구현하기 (게시판 구현)

kyou 2017. 4. 13. 11:45

게시글을 삭제하는 기능을 구현해보자

  글 삭제(delete) 기능은 화면이 필요 없으므로 JSP는 생성하지 않고, 이전과 동일하게 bbs.properties파일에 요청에 대해 처리할 클래스를 매핑한다.

#bbs.properties
/writeForm.bbs=com.edu.bbs.WriteFormImpl
/write.bbs=com.edu.bbs.WriteImpl
/list.bbs=com.edu.bbs.ListImpl
/content.bbs=com.edu.bbs.ContentImpl
/login.bbs=com.edu.bbs.LoginImpl
/logout.bbs=com.edu.bbs.LogoutImpl
/updateForm.bbs=com.edu.bbs.UpdateFormImpl
/update.bbs=com.edu.bbs.UpdateImpl
/delete.bbs=com.edu.bbs.DeleteImpl


  /delete.bbs에 대한 요청을 DeleteImpl클래스가 처리하게 된다. content.jsp화면의 '삭제하기'버튼을 확인해보면 /delete.bbs 요청으로 articleNumber와 pageNum을 쿼리스트링으로 던져주는 것을 확인할 수 있다.

package com.edu.bbs;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DeleteImpl implements BBSService {

	@Override
	public String bbsService(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		try {
			BBSOracleDao.getInstance().deleteArticle(req.getParameter("articleNumber"));
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return "/list.bbs?pageNum=" + req.getParameter("pageNum");
	}

}


  하나의 게시글을 삭제하는 메서드를 BBSOracleDao클래스에 작성한다.

/**
 * BBSOracleDao클래스에 추가한다.
 * @param articleNumber
 * @return
 */
public synchronized int deleteArticle(String articleNumber) throws ClassNotFoundException, SQLException {
	conn = orclDbc.getConnection();
	pstmt = conn.prepareStatement("DELETE FROM bbs WHERE article_number = ?");
	pstmt.setString(1, articleNumber);
	int result = pstmt.executeUpdate();
	
	disconnect();
	
	return result;
}


 아래는 삭제 기능을 적용한 화면이다. '삭제하기'버튼을 클릭 시 자바스크립트나 jQuery로 alert창을 띄워주는 것도 좋은 방법이 되겠다.