Servlet상품5: 상품삭제

AdminGoodsFrontController.java의 doProcess()의 주소비교 후 처리부분에 코드 추가

1
2
3
4
5
6
7
8
	//상품삭제
}else if(command.equals("/AdminGoodsDeleteAction.ag")){
System.out.println("C: /AdminGoodsDeleteAction.ag 호출");
//.jsp -> Action_DAO_DB ->.ag로 이동
action = new AdminGoodsDeleteAction();
try { forward = action.execute(request, response);
} catch (Exception e) { e.printStackTrace(); }
}




AdminGoodsDeleteAction.java 생성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class AdminGoodsDeleteAction implements Action {

@Override
public ActionForward execute(HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("M : AdminGoodsDeleteAction의 execute() 호출");

//관리자계정확인(세션 ID)
HttpSession session = request.getSession();
String id = (String)session.getAttribute("id");
ActionForward forward = new ActionForward();
if(id == null || !id.equals("admin")){
//response.sendRedirect("./Main.me"); 컨트롤러통해서 이동시키기
forward.setPath("./Main.me");
forward.setRedirect(true);
return forward;
}


//한글처리
request.setCharacterEncoding("UTF-8");

//전달받은 파라미터 저장
int gno = Integer.parseInt(request.getParameter("gno"));

//DB삭제을 위해 DAO생성 -> deleteGoods(gno)
AdminGoodsDAO agdao = new AdminGoodsDAO();
agdao.deleteGoods(gno);

//리스트 페이지이동
//(AdminGoodsList.ag -> 보이는 페이지도 AdminGoodsList.ag이므로 sendRedirect방식으로 이동)
forward.setPath("./AdminGoodsList.ag");
forward.setRedirect(true);
return forward;
}

}




AdminGoodsDAO.java 생성 후 deleteGoods(int gno)메서드 코드 추가

  • tmp는 DB의 몇개의 row가 영향을 받느냐를 나타내는데 여기서는 gno컬럼이 pk이므로 1 또는 0만 나옴
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//상품삭제
public void deleteGoods(int gno) {
try{
getCon();
sql = "delete from itwill_goods where gno=?";
pstmt = con.prepareStatement(sql);
pstmt.setInt(1, gno);
int tmp = pstmt.executeUpdate();
System.out.println("DAO : 상품삭제완료 -> "+tmp);
}catch(Exception e){
e.printStackTrace();
}finally {
closeDB();
}
}//end of deleteGoods