MVC_Board - action - BoardDeleteProAction.java

모쿠모쿠·2022년 9월 15일

JSP

목록 보기
144/151
package action;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import svc.BoardDeleteProService;
import vo.ActionForward;

public class BoardDeleteProAction implements Action {
	
    @Override 
    public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
    	System.out.println("BoardDeleteProAction");
        ActionForward forward = null;
        
        // 전달받은 파라미터 가져오기(페이지번호 제외)
        int board_num = Integer.parseInt(request.getParameter("board_num"));
        Sting board_pass = request.getParameter("board_pass");
        
        // BoardDeleteProService - isBoardWriter() 메서드를 호출하여 삭제
        // => 파라미터 : 글번호, 패스워드		리턴타입 : boolean(isBoardWriter)
        BoardDeleteProService service = new BoardDeleteProService();
        boolean isBoardWriter = service.isBoardWriter(board_num, board_pass);
        
        // 삭제 권한 판별 결과에 따른 작업 수행
        // 패스워드가 일치하지 않을 경우(= 권한 없을 경우)
        // 자바스크립트를 사용하여 "삭제 권한이 없습니다!" 출력 후 이전페이지로 돌아가기
        if(!isBoardWriter) {
        	response.setContentType("text/html; charset=UTF-8");
            PrintWriter out = response.getWriter();
            out.println("<script>");
            out.println("alert('삭제 권한이 없습니다!')");
            out.println("history.back()");
        } else { // 아니면(패스워드 일치할 경우 = 권한 있을 경우)
        	// BoardDeleteProService - removeBoard() 메서드를 호출하여 삭제 요청
            // => 파라미터 : 글번호		리턴타입 : boolean(isDeleteSuccess)
            // (BoardDAO - deleteBoard())
            boolean isDeleteSuccess = service.removeBoard(board_num);
            
            // 삭제 결과 판별
            // 삭제 실패 시 자바스크립로 "삭제 실패!" 출력 후 이전페이지로 돌아가기
            if(!isDeleteSuccess) {
            	response.setContentType("text/html; charset=UTF-8");
                PrintWriter out = response.getWriter();
                out.println("<script>");
                out.println("alert('삭제 실패!')");
                out.println("history.back()");
                out.println("</script>");
            } else {
            	// 글목록(BoardList.bo) 페이지 요청 => 페이지번호 전달
                forward = new ActionForward();
                forward.setPath("BoardList.bo?pageNum=" + request.getParameter("pageNum"));
                forward.setRedirect(true);
            }
        }
		
        return forward;
    }
    
}

package action;

import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import svc.BoardDeleteProService;
import vo.ActionForward;

public class BoardDeleteProAction implements Action {

@Override
public ActionForward execute(HttpServletRequest request, HttpServletResponse response) throws Exception {
	System.out.println("BoardDeleteProAction");
	ActionForward forward = null;
	
	// 전달받은 파라미터 가져오기(페이지번호 제외)
	int board_num = Integer.parseInt(request.getParameter("board_num"));
	String board_pass = request.getParameter("board_pass");
	
	// BoardDeleteProService - isBoardWriter() 메서드를 호출하여 삭제 권한 판별 요청
	// => 파라미터 : 글번호, 패스워드    리턴타입 : boolean(isBoardWriter)
	BoardDeleteProService service = new BoardDeleteProService();
	boolean isBoardWriter = service.isBoardWriter(board_num, board_pass);
	
	// 삭제 권한 판별 결과에 따른 작업 수행
	// 패스워드가 일치하지 않을 경우(= 권한 없을 경우)
	// 자바스크립트를 사용하여 "삭제 권한이 없습니다!" 출력 후 이전페이지로 돌아가기
	if(!isBoardWriter) {
		response.setContentType("text/html; charset=UTF-8");
		PrintWriter out = response.getWriter();
		out.println("<script>");
		out.println("alert('삭제 권한이 없습니다!')");
		out.println("history.back()");
		out.println("</script>");
	} else { // 아니면(패스워드 일치할 경우 = 권한 있을 경우)
		// BoardDeleteProService - removeBoard() 메서드를 호출하여 삭제 요청
		// => 파라미터 : 글번호    리턴타입 : boolean(isDeleteSuccess)
		// (BoardDAO - deleteBoard())
		boolean isDeleteSuccess = service.removeBoard(board_num);
		
		// 삭제 결과 판별
		// 삭제 실패 시 자바스크립트로 "삭제 실패!" 출력 후 이전페이지로 돌아가기
		if(!isDeleteSuccess) {
			response.setContentType("text/html; charset=UTF-8");
			PrintWriter out = response.getWriter();
			out.println("<script>");
			out.println("alert('삭제 실패!')");
			out.println("history.back()");
			out.println("</script>");
		} else {
			// 글목록(BoardList.bo) 페이지 요청 => 페이지번호 전달
			forward = new ActionForward();
			forward.setPath("BoardList.bo?pageNum=" + request.getParameter("pageNum"));
			forward.setRedirect(true);
		}
	}
	
	return forward;
}

}

profile
Hello, Velog!

0개의 댓글