controller.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.ArrayList, member.MemberDTO, product.ProductDTO"%>
<jsp:useBean class="member.MemberDAO" id="memberDAO"/>
<jsp:useBean class="product.ProductDAO" id="productDAO"/>
<jsp:useBean class="member.MemberDTO" id="memberDTO"/>
<jsp:setProperty property="*" name="memberDTO"/>
<jsp:useBean class="product.ProductDTO" id="productDTO"/>
<jsp:setProperty property="*" name="productDTO"/>
<%
boolean flag_method = request.getMethod().equals("POST");
String action = request.getParameter("action");
if(flag_method){//method 방식이 POST면 true
if(action.equals("login")){ //사용자가 회원가입 버튼을 입력하면
memberDTO = memberDAO.selectOne(memberDTO); //입력한 사용자 정보가 있는지 확인을 위해 selectOne
if(memberDTO != null){ // data가 null이 아니라면 로그인에 성공한 것이니
session.setAttribute("member_id", memberDTO.getMember_id()); // session에 사용자 id를 저장한다.
if(memberDTO.getMember_role().equals("ADMIN")){//만약 사용자 권한이 ADMIN이라면 관리자 페이지로 이동
out.print("<script>alert('로그인 되었습니다.');location.href='controller.jsp?action=admin'</script>");
}//equals("ADMIN") if 종료
else{//그렇지 않다면 main페이지로 이동시켜줍니다.
out.print("<script>alert('로그인 되었습니다.');location.href='controller.jsp?action=main'</script>");
}//equals("ADMIN") else 종료
}
else{//data!=null else 시작
out.print("<script>alert('로그인에 실패하였습니다.');location.href='controller.jsp?action=main'</script>");
}//data!=null else 종료
} // action.equals("login") if 끝
else if(action.equals("singup")){
boolean flag = memberDAO.insert(memberDTO); // 회원가입 시켜주고.
if(flag){ // true를 반환하면 성공한 것이니 성공
out.print("<script>alert('회원가입이 완료되었습니다.');location.href='controller.jsp?action=main'</script>");
}
else{//false를 반환하면 실패하 것이니 실패
out.print("<script>alert('회원가입에 실패하였습니다.');location.href='controller.jsp?action=join'</script>");
}
}
else if(action.equals("cartInsert")){
ArrayList<ProductDTO> datas = (ArrayList<ProductDTO>)session.getAttribute("cart");
int index = -1; // 배열로 나올 수 없는 번호를 추가해두고
if(datas == null){//datas 카트 장바구니가 null이라면
datas = new ArrayList<ProductDTO>(); // 새로운 힙 메모리를 생성하여
session.setAttribute("cart", datas);//session에 저장해둔다.
}
for(int i=0; i<datas.size() ; i++){
//장바구니에 선택한 상품이 있다면
if(datas.get(i).getProduct_num() == productDTO.getProduct_num()){
index = i;
break;
}
}
int cnt = productDTO.getProduct_cnt(); // 받아온 개수 불러오고
productDTO = productDAO.selectOne(productDTO);
if(index < 0){ // index가 -1이하로 나온다면 cart에 값이 없는 거로
productDTO.setProduct_cnt(cnt);
datas.add(productDTO); //cart배열에 값을 추가해주고
}
else{// 0보다 크다면 cart배열에 값이 있는 것이니
//productDTO의 cnt개수를 변경해주고
int cart_cnt = datas.get(index).getProduct_cnt(); //cart배열내 개수 불러오고
productDTO.setProduct_cnt(cart_cnt + cnt); // 두 개수를 합쳐서
//저장해준다.
datas.set(index, productDTO); // 해당 카트에 다시 저장한다.
}
request.setAttribute("cart", datas);
out.print("<script>alert('장바구니에 추가하였습니다.');location.href='controller.jsp?action=main'</script>");
}//action.equals("cartInsert") else if 종료
else if(action.equals("chang_name")){
memberDTO.setMember_id((String)session.getAttribute("member_id"));
memberDAO.update(memberDTO);
pageContext.forward("mypage.jsp");
}//action.equals("chang_name") else if 종료
else if(action.equals("sall")){
String[] num = request.getParameterValues("sallproduct");
String[] cnt = request.getParameterValues("product_num");
//UPDATE PRODUCT SET PRODUCT_CNT=PRODUCT_CNT-? WHERE PRODUCT_NUM = ?
boolean flag = false;
for(int i = 0; i < num.length; i++){ // 받아온 상품 번호만큼 for문 돌리기
productDTO.setProduct_num(Integer.parseInt(num[i])); // 받아온 값은 문자열이기 때문에 형변환을 진행
productDTO.setProduct_cnt(Integer.parseInt(cnt[i]));// 받아온 값은 문자열이기 때문에 형변환을 진행
flag = productDAO.update(productDTO);
}
if(flag){
out.print("<script>alert('구매 되었습니다.');location.href='controller.jsp?action=main'</script>");
session.removeAttribute("cart");//구매 되었으니 장바구니 세션 삭제
}
}//action.equals("sall") else if 종료
else if(action.equals("pruductinsert")){
boolean flag = productDAO.insert(productDTO);
if(flag){
out.print("<script>alert('상품이 추가되었습니다.');location.href='controller.jsp?action=admin'</script>");
}
else{
out.print("<script>alert('상품 추가 실패');location.href='controller.jsp?action=admin'</script>");
}
}
else{
out.print("<script>alert('잘못된 접근');location.href='controller.jsp?action=main'</script>");
} //post else 종료
}//flag_method if POST 종료
else{//아니면 flas
if(action.equals("main")){
pageContext.forward("main.jsp");
} // action.equals("main") if 종료
else if(action.equals("join")){
pageContext.forward("join.jsp");
} // action.equals("join") else if 종료
else if(action.equals("logout")){
//session.removeAttribute("member_id");
//session.removeAttribute("cart");
session.invalidate();
out.print("<script>location.href='controller.jsp?action=main'</script>");
} // action.equals("logout") else if 종료
else if(action.equals("mypage")){
pageContext.forward("mypage.jsp");
}// action.equals("mypage") else if 종료
else if(action.equals("cart")){
request.setAttribute("cart", session.getAttribute("cart"));
pageContext.forward("cart.jsp");
}// action.equals("cart") else if 종료
else if(action.equals("product")){
request.setAttribute("data", productDAO.selectOne(productDTO));
pageContext.forward("product.jsp");
}// action.equals("product") else if 종료
else if(action.equals("secession")){
memberDTO.setMember_id((String)session.getAttribute("member_id"));
boolean flag = memberDAO.delete(memberDTO);
if(flag){
session.invalidate();
out.print("<script>alert('탈퇴되었습니다.');location.href='controller.jsp?action=main'</script>");
}
else{
out.print("<script>alert('탈퇴실패 관리자에게 문의해주세요.');location.href='controller.jsp?action=mypage'</script>");
}
}//action.equals("secession")
else if(action.equals("delete")){
boolean flag = productDAO.delete(productDTO);
if(flag){
out.print("<script>alert('삭제되었습니다.');location.href='controller.jsp?action=admin'</script>");
}
}//action.equals("delete")
else if(action.equals("admin")){
productDTO.setProduct_searchKeyword("seller");//상품 판매자는
productDTO.setProduct_seller((String)session.getAttribute("member_id"));//곳 관리자 이기 떄문에 관리자 아이디로 검색
request.setAttribute("datas", productDAO.selectAll(productDTO)); // admin.jsp페이지로 전달한다.
pageContext.forward("admin.jsp");
}//action.equals("admin")
else if(action.equals("search")){
ArrayList<ProductDTO> datas = productDAO.selectAll(productDTO);
request.setAttribute("datas", datas);
pageContext.forward("main.jsp");
}//action.equals("search")
else{
out.print("<script>alert('잘못된 접근');location.href='controller.jsp?action=main'</script>");
} //get else 종료
}//flag_method else GET 종료
%>
728x90
'국비 내용 정리 > 과제' 카테고리의 다른 글
[Spring] Page 작성 과제(MEMBER 관련) (0) | 2024.10.05 |
---|---|
국비 34일차 과제 (0) | 2024.08.19 |
jSP 쇼핑몰 제작(page : cart, join, product) (0) | 2024.08.11 |
jSP 쇼핑몰 제작(page : index, main, mypage, admin) (0) | 2024.08.11 |
jsp를 통해 회원가입 작성하기 2번째 (0) | 2024.08.07 |