문제 : deleteForm.jsp 페이지를 이용하여 게시물 삭제 부분 완성하기
❓
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- /jsp3/src/main/webapp/view/board/deleteForm.jsp --%>
<!DOCTYPE html><html><head>
<meta charset="UTF-8">
<title>게시글삭제</title></head>
<body>
<hr>
<div class="container">
<h2 id="center">게시물 삭제</h2>
<form action="delete" method="post">
<div class="form-group">
<input type="hidden" name="num" value="${param.num}">
<label >Password:</label>
<input type="password" class="form-control" name="pass">
</div>
<div id="center" style="padding: 3px;">
<button type="submit" class="btn btn-dark">게시물삭제</button>
</div>
</form>
</div>
</body>
</html>
📌 1. BoardController.java 추가 - 화면에 보이게 추가.(삭제 버튼을 누르면 화면이 뜨게끔)
@RequestMapping("deleteForm")
public String deleteForm (HttpServletRequest request, HttpServletResponse response) {
return "/view/board/deleteForm.jsp";
}
1. BoardController.java 추가
@RequestMapping("delete")
public String delete (HttpServletRequest request, HttpServletResponse response) {
int num = Integer.parseInt(request.getParameter("num"));
String pass = request.getParameter("pass");
Board board = dao.selectOne(num);
String msg = "비밀번호가 틀립니다.";
String url = "deleteForm?num=" + num;
if(pass.equals(board.getPass())) {
if(dao.delete(num)) {
msg = board.getWriter() + "님의 게시글이 삭제 되었습니다.";
} else {
msg = "게시글 삭제시 오류가 있습니다.";
}
url = "list?board=" + board.getBoardid();
}
request.setAttribute("msg",msg);
request.setAttribute("url",url);
return "/view/alert.jsp";
}
2. BoardDao.java 수정
public Board selectOne(int num) {
Connection conn = DBConnection.getConnection();
PreparedStatement pstmt = null;
String sql = "select * from board where num=?";
ResultSet rs = null;
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1,num);
rs = pstmt.executeQuery();
if(rs.next()) {
Board b = new Board();
b.setNum(rs.getInt("num"));
b.setWriter(rs.getString("writer"));
b.setPass(rs.getString("pass"));
b.setSubject(rs.getString("subject"));
b.setContent(rs.getString("content"));
b.setFile1(rs.getString("file1"));
b.setBoardid(rs.getString("boardid")); // 이부분 누락 됨.
b.setGrp(rs.getInt("grp"));
b.setGrplevel(rs.getInt("grplevel"));
b.setGrpstep(rs.getInt("grpstep"));
b.setReadcnt(rs.getInt("readcnt"));
b.setRegdate(rs.getDate("regdate"));
return b; //b : db의 내용을 저장
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConnection.close(conn,pstmt,rs);
}
return null;
}
- BoardDao.java 추가
public boolean delete (int num) {
String sql = "delete from board where num=?";
Connection conn = DBConnection.getConnection();
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1,num);
return pstmt.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBConnection.close(conn,pstmt,null);
}
return false;
}
- 결과



