오늘로서 간단한 CRUD 토이 프로젝트가 마무리 되었다.
전체 댓글 삭제 권한
Comment controller | BoardDetailController
package com.CRUDp.web.admin.controller;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import com.CRUDp.web.admin.dto.BoardDto;
import com.CRUDp.web.admin.dto.CmtDto;
import com.CRUDp.web.admin.service.BoardDetailService;
@WebServlet("/admin/board/detail")
public class BoardDetailController extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String cmt = req.getParameter("comment");
String boardId_ = req.getParameter("board_id");
int boardId = boardId_ != null && !boardId_.equals("") ? Integer.parseInt(boardId_) : 0;
String page_ = req.getParameter("page");
int page = page_ != null && !page_.equals("") ? Integer.parseInt(page_) : 1;
BoardDto boardDetail = new BoardDto();
BoardDto nextPost = new BoardDto();
BoardDto prevPost = new BoardDto();
int cmtCount = 0;
BoardDetailService service = new BoardDetailService();
List<CmtDto> cmtList = new ArrayList<>();
service.setBoardHit(boardId);
nextPost = service.getNextPost(boardId);
prevPost = service.getPrevPost(boardId);
boardDetail = service.getBoardDetailService(boardId);
cmtList = service.getCmtList(boardId, page);
cmtCount = service.getCmtCount(boardId);
req.setAttribute("detailBoard", boardDetail);
req.setAttribute("nextPost", nextPost);
req.setAttribute("prevPost", prevPost);
req.setAttribute("cmtList", cmtList);
req.setAttribute("cmtCount", cmtCount);
req.getRequestDispatcher("/WEB-INF/view/admin/board/detail/detail.jsp").forward(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("UTF-8");
resp.setCharacterEncoding("UTF-8");
resp.setContentType("text/html; charset=UTF-8");
HttpSession session = req.getSession();
String user = (String) session.getAttribute("userId");
String cmtAction = req.getParameter("cmt-action");
String boardId_ = req.getParameter("board_id");
int boardId = boardId_ != null && !boardId_.equals("") ? Integer.parseInt(boardId_) : 0;
BoardDetailService service = new BoardDetailService();
// 사용자 인지 확인 &
if (cmtAction.equals("등록")) {
if (user != null) {
String cmt = req.getParameter("comment");
String writerId = (String) session.getAttribute("userId");
service.setCmt(cmt, writerId, boardId);
resp.sendRedirect("/admin/board/detail?board_id=" + boardId);
} else {
resp.sendRedirect("/admin/signIn");
}
} else if (cmtAction.equals("X")) {
if (user != null) {
String cmtId_ = req.getParameter("cmtId");
int cmtId = cmtId_ != null && !cmtId_.equals("") ? Integer.parseInt(cmtId_) : 0;
service.deleteCmt(cmtId, user);
resp.sendRedirect("/admin/board/detail?board_id=" + boardId);
}
}
}
}
오늘은 전체 댓글 삭제 관련 기능만 하면 끝나는 부분이라서 금방 끝이났다
기존에 일반 유저와 다른점은 단디 View 단에서 모든 삭제 버튼이 보여지게끔 하는 부분과
서비스단에서 어드민인지에 대한 체크만 해주면 되었다.
public int deleteCmt(int cmtId, String user) {
int result = 0;
boolean adminState = boardDao.selectAdminMember(user);
if (adminState) {
result = boardDao.deleteCmt(cmtId);
}
return result;
}
위의 코드처럼 BoardDao.selectAdminMember(user);
부분으로 어드민인지에 대하여 체크하여 모든 댓글을 삭제할 수 있게된다.
총 4일정도 사실상 3일정도로 프로젝트를 마무리하였다.
이번 프젝은 토이프젝답게 짧게 끝난 프로젝트였다 프로젝트를 마무리하면서 보니 코드들을 뜯어 고치고 싶은 마음도 든다 하지만 이후 또 다른 프로젝트를 하면서 반면교사 삼아 해당 코드를 나두고 진행해보는것도 좋을것같아 고치면 좋을점을 적고 두고두고 보면서 작업할 예정이다.
이렇게 고칠점들을 적어보니 더 확실하게 고칠점들과 보안할점들이 크게 다가오는 것 같고
이번 프로젝트 코드들을 뜯어보면서 초심을 잃지 않고 코드를 단순 작업하듯이 작성하는 개발자가 아닌 좀더 효율적이고 창의적인 코드를 작성하는 개발자가 되었으면 좋겠다
끝!
하기전에 깃허브 코드를 남깁니다~