본문 바로가기

개인프로젝트

[내가 만든 프로젝트 코드 분석 | JSP게시판 만들기] 14.게시물 삭제 기능 구현하기

BbsDAO클래스에 게시물의 삭제기능을 구현합니다.

public int delete(int bbsID) { // availavle값을 변경하여 삭제대기 상태로 변경
		String SQL = "UPDATE BBS SET bbsAvailavle = 0 WHERE bbsID = ?";  
		try {
			PreparedStatement pstmt = conn.prepareStatement(SQL);
			pstmt.setInt(1, bbsID);
			return pstmt.executeUpdate(); // 성공한 경우
		} catch (Exception e) {
			e.printStackTrace();
		}
		return -1; // 데이터베이스 오류
	}

deleteAction.jsp를 만들어 기능을 수행합니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import = "bbs.BbsDAO" %>
<%@ page import = "bbs.Bbs" %>
<%@ page import = "java.io.PrintWriter" %>
<% request.setCharacterEncoding("UTF-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP 게시판 웹 사이트</title>
</head>
<body>
	<%
 		String userID = null;
		if (session.getAttribute("userID") != null){
			userID = (String) session.getAttribute("userID");	
		}
		if (userID == null) {
			PrintWriter script = response.getWriter();
 			script.println("<script>");
 			script.println("alert('로그인을하세요.')");
 			script.println("location.href = 'login.jsp'");
 			script.println("</script>");
		} 
		int bbsID = 0;
		if (request.getParameter("bbsID") != null) {
			bbsID = Integer.parseInt(request.getParameter("bbsID"));
		}
		if (bbsID == 0) {
			PrintWriter script = response.getWriter();
			script.println("<script>");
			script.println("alert('유효하지 않은 글입니다.')");
			script.println("location.href = 'bbs.jsp'");
			script.println("</script>");
		}
		Bbs bbs = new BbsDAO().getBbs(bbsID);
		if (!userID.equals(bbs.getUserID())) {
			PrintWriter script = response.getWriter();
			script.println("<script>");
			script.println("alert('권한이 없습니다.')");
			script.println("location.href = 'bbs.jsp'");
			script.println("</script>");
		} else {
		 		BbsDAO bbsDAO = new BbsDAO();
			 	int result = bbsDAO.delete(bbsID); // 삭제 기능 구현
			 	if(result == -1) {
			 		PrintWriter script = response.getWriter();
			 		script.println("<script>");
			 		script.println("alert('글 삭제에 실패했습니다.')");
			 		script.println("history.back()");
			 		script.println("</script>");
			 	}
			 	else {
			 		PrintWriter script = response.getWriter();
			 		script.println("<script>");
			 		script.println("location.href = 'bbs.jsp'");
			 		script.println("</script>");
			 	}
		 }	
	%>
</body>
</html>

view.jsp에 삭제 확인 알림을 추가합니다.

<a href="bbs.jsp" class="btn btn-primary">목록</a>
	<%
		if(userID != null && userID.equals(bbs.getUserID())) {
	%>		
		<a href="update.jsp?bbsID=<%= bbsID %>" class="btn btn-primary">수정</a>
		<a onclick="return confirm('정말로 삭제하시겠습니까?')" href="deleteAction.jsp?bbsID=<%= bbsID %>" class="btn btn-primary">삭제</a>		// 삭제 재확인 알림
	<%	
		}
	%>