안녕하세요! 오늘은 지난 시간에 이어서 장바구니 페이지의 삭제기능을 만들어 보려고 합니다. 상품을 삭제하고 싶을 때 개별삭제를 할 수도 있고 전체 삭제를 할 수도 있을 텐데요. 간단한 코드이니 빠르게 살펴봅시다.
📋순서
1. 개별 상품 삭제하기
2. 전체 상품 삭제하기
3. 결과
#01. 장바구니에 등록된 개별 상품 삭제
removeCart.jsp를 새로 생성해 줍니다. 그리고 스크립트 태그 안에 다음과 같이 작성해 주면 됩니다.
String id = request.getParameter("id");
if (id == null || id.trim().equals("")) {
response.sendRedirect("products01.jsp");
return;
}
요청된 파라미터 아이디를 전송받도록 request내장 객체의 getParameter()메소드를 작성하고, 전송된 아이디가 없을 때 웹페이지 products01.jsp로 이동하도록 response 내장객체의 sendRedirect()메소드를 작성하여 줍니다.
ProductRepository dao = ProductRepository.getInstance();
상품 데이터 접근 클래스 ProductRdpository의 기본 생성자에 대한 객체 변수 instance를 얻어오도록 작성합니다.
Product book = dao.getProductById(id);
if (book == null) {
response.sendRedirect("exceptionNoProductId.jsp");
}
상품 아이디를 호출해 주고 getProductById로 불러온 아이디를 Product객체에 저장해 줍니다. 만약 상품아이디에 대한 정보가 없으면 예외처리 페이지로 이동합니다.
ArrayList<Product> cartList = (ArrayList<Product>) session.getAttribute("cartlist");
장바구니인 cartlist에 등록된 모든 상품을 가져오도록 세션 내장객체의 getAttribute()메소드를 작성합니다.
Product goodsQnt = new Product();
Product객체를 생성해 주고
for (int i = 0; i < cartList.size(); i++) { // 상품리스트 하나씩 출력하기
goodsQnt = cartList.get(i);
if (goodsQnt.getBookID().equals(id)) {
cartList.remove(goodsQnt);
}
}
cartlist에 등록된 모든 상품을 하나씩 가져와서 요청파라미터 아이디와 같으면 cartlist에서 삭제하도록 합니다.
▶removeCart.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.util.ArrayList"%>
<%@ page import="dto.Product" %>
<%@ page import="dao.ProductRepository" %>
<%
String id = request.getParameter("id");
if (id == null || id.trim().equals("")) {
response.sendRedirect("products01.jsp");
return;
}
ProductRepository dao = ProductRepository.getInstance();
Product book = dao.getProductById(id);
if (book == null) {
response.sendRedirect("exceptionNoProductId.jsp");
}
ArrayList<Product> cartList = (ArrayList<Product>) session.getAttribute("cartlist");
Product goodsQnt = new Product();
for (int i = 0; i < cartList.size(); i++) { // 상품리스트 하나씩 출력하기
goodsQnt = cartList.get(i);
if (goodsQnt.getBookID().equals(id)) {
cartList.remove(goodsQnt);
}
}
response.sendRedirect("cart.jsp");
%>
#02. 장바구니에 등록된 전체 상품 삭제하기
deleteCart.jsp파일을 하나 생성해 주고 다음과 같이 코드를 작성해 줍니다.
String id = request.getParameter("cartId");
if (id == null || id.trim().equals("")){
response.sendRedirect("cart.jsp");
return;
}
요청된 파라미터 cartId를 전송받도록 request내장 객체의 getParameter()메소드를 작성하고 전송된 cartId가 없을 때 웹페이지 cart.jsp로 이동하도록 sendRedirect를 작성합니다.
session.invalidate();
장바구니에 등록된 모든 상품을 삭제하도록 invalidate()메소드를 작성해 줍니다.
▶removeCart.jsp
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="dto.Product"%>
<%@ page import="dao.ProductRepository"%>
<%
String id = request.getParameter("cartId");
if (id == null || id.trim().equals("")){
response.sendRedirect("cart.jsp");
return;
}
session.invalidate();
response.sendRedirect("cart.jsp");
%>
#03. 결과
실행해서 삭제 버튼을 눌렀을 때 잘 작동하는 것을 볼 수 있습니다.
'📒 개발기록 > JSP 프로젝트' 카테고리의 다른 글
[JSP][도서쇼핑몰 프로젝트]#13.데이터베이스/테이블 생성 및 연동하기 (0) | 2023.04.08 |
---|---|
[JSP][도서쇼핑몰 프로젝트]#12.주문처리페이지 만들기 (0) | 2023.03.26 |
[JSP][도서쇼핑몰 프로젝트]#10.장바구니 페이지 만들기(1) (0) | 2023.02.17 |
[JSP][도서쇼핑몰 프로젝트]#9.로그 기록하기 (0) | 2023.02.10 |
[JSP][도서쇼핑몰 프로젝트]#8.예외처리 페이지 만들기 (0) | 2023.02.06 |