1. 수정 기능
BbsDAO.java에 수정하는 함수 update 추가
//수정 함수 public int update(int bbsID, String bbsTitle, String bbsContent) { String SQL = "UPDATE BBS SET bbsTitle = ?, bbsContent = ?, WHERE bbsID = ?"; try { PreparedStatement pstmt = conn.prepareStatement(SQL); pstmt.setString(1, bbsTitle); pstmt.setString(2, bbsContent); pstmt.setInt(3, bbsID); return pstmt.executeUpdate(); } catch (Exception e) { e.printStackTrace(); } return -1; // 데이터베이스 오류 } }
|
Update.jsp 생성
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.io.PrintWriter"%> <%@ page import="bbs.Bbs"%> <%@ page import="bbs.BbsDAO"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- 뷰포트 --> <meta name="viewport" content="width=device-width" initial-scale="1"> <!-- 스타일시트 참조 --> <link rel="stylesheet" href="css/bootstrap.css"> <title>jsp 게시판 웹사이트</title> </head> <body> <% //로긴한사람이라면 userID라는 변수에 해당 아이디가 담기고 그렇지 않으면 null값 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>"); } %> <!-- 네비게이션 --> <nav class="navbar navbar-default"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="bs-example-navbar-collapse-1" aria-expaned="false"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="main.jsp">JSP 게시판</a> </div> <div class="collapse navbar-collapse" id="#bs-example-navbar-collapse-1"> <ul class="nav navbar-nav"> <li><a href="main.jsp">메인</a></li> <li class="active"><a href="bbs.jsp">게시판</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">회원관리<span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="logoutAction.jsp">로그아웃</a></li> </ul> </li> </ul> </div> </nav> <!-- 게시판 --> <div class="container"> <div class="row"> <form method="post" action="updateAction.jsp?bbsID=<%= bbsID %> "> <table class="table table-striped" style="text-align: center; border: 1px solid #dddddd"> <thead> <tr> <th colspan="2" style="background-color: #eeeeee; text-align: center;">글 수정 </th> </tr> </thead> <tbody> <tr> <td><input type="text" class="form-control" placeholder="글 제목" name="bbsTitle" maxlength="50" value="<%= bbs.getBbsTitle() %>" ></td> </tr> <tr> <td><textarea class="form-control" placeholder="글 내용" name="bbsContent" maxlength="2048" style="height: 350px;" ><%= bbs.getBbsContent() %></textarea></td> </tr> </tbody> </table> <button type="submit" class="btn btn-primary pull-right" >글수정</button> </form> </div> </div> <!-- 애니매이션 담당 JQUERY --> <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <!-- 부트스트랩 JS --> <script src="js/bootstrap.js"></script> </body> </html>
|
글 수정시 원글의 제목과 내용이 보이도록
제목과 내용에 value값을 추가.
실제로 글 수정을 처리하는 updateAction.jsp 페이지 생성
(강의에서 writeAction처럼 자바 빈즈를 사용하지 않고
갑자기 파라미터로 값을 받아오신다)
<%@ 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"); //sresponse.setContentType("text/html; charset=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 { if (request.getParameter("bbsTitle") == null || request.getParameter("bbsContent") == null || request.getParameter("bbsTitle").equals("") || request.getParameter("bbsContent").equals("") ) { PrintWriter script = response.getWriter(); script.println("<script>"); script.println("alert('입력이 안된 사항이 있습니다')"); script.println("history.back()"); script.println("</script>"); } else { BbsDAO BbsDAO = new BbsDAO(); int result = BbsDAO.update(bbsID, request.getParameter("bbsTitle"), request.getParameter("bbsContent"); 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("history.back()"); script.println("</script>"); } } } %> </body> </html>
|
글이 수정되면 새로운 글 번호로 최신글로 등록된다.
2. 삭제
BbsDAO.java에 삭제 함수 delete 추가
//삭제 함수 public int delete(int bbsID) { String SQL = "UPDATE BBS SET bbsAvailable = 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"); //response.setContentType("text/html; charset=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 의 삭제 버튼에 onclick return confirm 추가
<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>
|
'STUDY > programing' 카테고리의 다른 글
HTML5 란 ? (0) | 2018.11.28 |
---|---|
WEB! 웹, 웹 서버, 웹 사이트, HTTP ? (5) | 2018.11.27 |
JSP 기초 : 게시판 만들기 9. main.jsp (250) | 2018.11.05 |
JSP 기초 : 게시판 만들기 7. 글 목록 및 뷰페이지 (442) | 2018.10.24 |
JSP 기초 : 게시판 만들기 6. 글 등록 기능 (262) | 2018.10.23 |
JSP 기초 : 게시판 만들기 5. 게시판 DB 생성 (753) | 2018.10.22 |