본 포스팅은
정보 제공용이 아닌
유튜브 동빈나님의 JSP 게시판 만들기 강좌 13강을
바탕으로 보고 배운 것을 직접 정리해본 포스트 입니다.
** 간략 프로세스
- view.jsp 삭제버튼-> deleteAction.jsp -> bbsDAO.jsp의 delete() 호출
** view.jsp
<%
if( userID != null && userID.equals(bbs.getUserID())){
%>
<a href="update.jsp?bbsID=<%=bbsID %>" class="btn btn-info">수정</a>
<a onclick="return confirm('정말 삭제하시겠습니까?')" href="deleteAction.jsp?bbsID=<%=bbsID %>" class="btn btn-danger">삭제</a>
<%
}
%>
- 작성자와 로그인한 사람과 같을 때 수정과 삭제가 보이도록 했었다.
- 삭제 버튼시 bbsID값과 함께 deleteAction으로 이동한다.
- onclick = ""은 클릭시 이벤트를 넣어주는 속성이다.
- return confirm('')은 작성한 확인 메시지와 함께 한번 더 확인하는 창을 띄운다. 예를 누르면 다음 동작이 실행된다.
- 이건 처음에 자바스크립트의 함수인줄 알았는데 검색도 해보고 자바스크립트 경로를 지워보기도 했으며 직접 새 jsp로 만들어본 결과 저것만으로도 잘 작동하는 걸 보니 html의 자체 속성인듯 하다.
** deleteAction.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 클래스 import -->
<%@ page import = "bbs.BbsDAO" %>
<%@ page import = "java.io.PrintWriter" %>
<%@ page import = "bbs.Bbs" %>
<!-- 요청의 인코딩 타입을 UTF-8로 지정 -->
<% request.setCharacterEncoding("UTF-8"); %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
//로그인 세션 확인
String userID = null;
if(session.getAttribute("userID")!=null){
userID = (String)session.getAttribute("userID");
}
//게시물 유효성 확인
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 bao = new BbsDAO();
//게시물 삭제
int result = bao.delete(bbsID);
if(result == -1){
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('삭제에 실패했습니다.')");
script.println("histroy.back()");
script.println("</script>");
}else {
PrintWriter script = response.getWriter();
script.println("<script>");
script.println("alert('글이 삭제되었습니다.')");
script.println("location.href = 'bbs.jsp'");
script.println("</script>");
}
}
%>
</body>
</html>
- 로그인 세션 확인, 게시물의 유효성, 작성자 권한 확인 등 updateAction.jsp와 거의 흡사하다.
- 받은 bbsID를 인자로 BbsDAO의 delete 메서드를 호출한다.
- 여느 때처럼 반환값에 따라 알림과 이동을 해준다.
** bbsDAO.java
//글 삭제하기
public int delete(int bbsID) {
String sql = "DELETE FROM BBS WHERE bbsID=?";
try {
PreparedStatement pst = conn.prepareStatement(sql);
pst.setInt(1, bbsID);
return pst.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
- 인자로 받은 bbsID를 sql에 꽂아넣어 실행해준다.
** 결과 화면
'웹 개발 한걸음' 카테고리의 다른 글
[Servlet] EL과 데이터 저장소 (0) | 2021.03.18 |
---|---|
[JSP] 14강 - 메인 화면 꾸미기 (0) | 2021.03.17 |
[JSP] 13강 Part1 - 게시글 수정 (0) | 2021.03.15 |
[JSP] 12강 - 상세 페이지 구현 + 특수 문자 처리 (0) | 2021.03.12 |
[JDBC] 용어 정리 해보기 (0) | 2021.03.12 |