본문 바로가기

JSP/Shopping Cart 02

Shopping Cart 02

각 구매페이지로부터 오는 모든 요청은 cartAdd.jsp에서 처리하게 한다. cartAdd.jsp에서는 어떤 아이템을 구입했는지 확인한 다음 useBean 액션을 이용하여 빈객체를 생성하고 폼으로부터 전달된 파라미터를 빈객체에 설정한다. 각 상품 클래스들은 Goods 클래스를 공통으로 상속하게 했다. Cart 클래스는 아직 완성하지 않은 상태이다.
구성 파일 JSP: notebook.jsp, navi.jsp, mp3.jsp, cartAdd.jsp
              Java: Cart.java, Goods.java, Notebook.java, Navigation.java, MP3.java

notebook.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Notebook 플레이어 구입 페이지</title>
</head>
<body><p><center>
Notebook 추천 상품 BEST<hr width="60%"><p>
<div style="font-size:60%">
<form action="cartAdd.jsp" method="post">
<table><tr><td bgcolor="orange">
<table border=1 cellspacing=0 cellpadding=5 bgcolor="white">
<tr><td colspan=2><img src="http://cfs6.tistory.com/upload_control/download.blog?fhandle=YmxvZzEwNjY3NUBmczYudGlzdG9yeS5jb206L2F0dGFjaC8wLzA2MDAwMDAwMDAwMS5qcGc="></td></tr>
<!-- 상품명, 제조사, CPU, RAM, 가격, 수량  -->
<tr><td align="right">상품명</td><td align="left">Mac Book Pro</td></tr>
<tr><td align="right">제조사</td><td align="left">Apple Computer</td></tr>
<tr><td align="right">CPU</td><td align="left">Intel Pentium 4 Dual Core</td></tr>
<tr><td align="right">RAM</td><td align="left">1GB</td></tr>
<tr><td align="right">가격</td><td align="left">1,240,000 won</td></tr>
<tr><td align="right">구매수량</td>
<td align="left"><input type="text" name="qty" value="1" style="width:50px;border:1px solid"></td>
<tr><td colspan="2"><input type="submit" value="장바구니 담기"></td></tr>
</table></td></tr></table>
<input type="hidden" name="item" value="notebook">
<input type="hidden" name="name" value="Mac Book Pro">
<input type="hidden" name="company" value="Apple Korea">
<input type="hidden" name="cpu" value="P4 Dual">
<input type="hidden" name="ram" value="1gb">
<input type="hidden" name="price" value="1240000">
</form>
</div>
</center>
</body>
</html>

navi.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Navigation 구입 페이지</title>
</head>
<body><p><center>
Navigation 추천 상품 최저가격BEST<hr width="60%"><p>
<div style="font-size:60%">
<form action="cartAdd.jsp" method="post">
<table><tr><td bgcolor="orange">
<table border=1 cellspacing=0 cellpadding=5 bgcolor="white">
<tr><td colspan=2><img src="http://cfs4.tistory.com/upload_control/download.blog?fhandle=YmxvZzEwNjY3NUBmczQudGlzdG9yeS5jb206L2F0dGFjaC8wLzA2MDAwMDAwMDAwMi5qcGc="></td></tr>
<!-- 상품명, 제조사, 스크린 사이즈 , 가격, 수량  -->
<tr><td align="right">상품명</td><td align="left">Car Navigation</td></tr>
<tr><td align="right">제조사</td><td align="left">Road Star</td></tr>
<tr><td align="right">스크린 사이즈</td><td align="left">9 in</td></tr>
<tr><td align="right">가격</td><td align="left">240,000 won</td></tr>
<tr><td align="right">구매수량</td>
<td align="left"><input type="text" name="qty" value="1" style="width:50px;border:1px solid"></td>
<tr><td colspan="2"><input type="submit" value="장바구니 담기"></td></tr>
</table></td></tr></table>
<input type="hidden" name="item" value="navigation">
<input type="hidden" name="name" value="Car Navigation">
<input type="hidden" name="company" value="Road Star">
<input type="hidden" name="screen" value="9 in">
<input type="hidden" name="price" value="240000">
</form>
</div>
</center>
</body>
</html>

mp3.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Notebook 구입 페이지</title>
</head>
<body><p><center>
MP3 추천 상품 인기BEST<hr width="60%"><p>
<div style="font-size:60%">
<form action="cartAdd.jsp" method="post">
<table><tr><td bgcolor="orange">
<table border=1 cellspacing=0 cellpadding=5 bgcolor="white">
<tr><td colspan=2><img src="http://cfs5.tistory.com/upload_control/download.blog?fhandle=YmxvZzEwNjY3NUBmczUudGlzdG9yeS5jb206L2F0dGFjaC8wLzA2MDAwMDAwMDAwMC5qcGc="></td></tr>
<!-- 상품명, 제조사, 메모리 사이즈, 가격, 수량   -->
<tr><td align="right">상품명</td><td align="left">IRiver1G</td></tr>
<tr><td align="right">제조사</td><td align="left">Top Sound Korea</td></tr>
<tr><td align="right">Memory</td><td align="left">1GB</td></tr>
<tr><td align="right">가격</td><td align="left">124,000 won</td></tr>
<tr><td align="right">구매수량</td>
<td align="left"><input type="text" name="qty" value="1" style="width:50px;border:1px solid"></td>
<tr><td colspan="2"><input type="submit" value="장바구니 담기"></td></tr>
</table></td></tr></table>
<input type="hidden" name="item" value="mp3">
<input type="hidden" name="name" value="IRiver1G">
<input type="hidden" name="company" value="Top Sound Korea">
<input type="hidden" name="memorySize" value="1GB">
<input type="hidden" name="price" value="124000">
</form>
</div>
</center>
</body>
</html>

cartAdd.jsp
<jsp:useBean id="cart" class="shopping.Cart" scope="session"/>
<%
 String item = request.getParameter("item");
 if(item.equals("notebook")){%>
  <jsp:useBean id="notebook" class="shopping.Notebook">
   <jsp:setProperty name="notebook" property="*"/>
  </jsp:useBean>
  <%= notebook.getName()%>
<% }else if(item.equals("mp3")){%>
  <jsp:useBean id="mp3" class="shopping.MP3">
   <jsp:setProperty name="mp3" property="*"/>
  </jsp:useBean>
  <%= mp3.getName()%>
<% }else if(item.equals("navigation")){%>
  <jsp:useBean id="navigation" class="shopping.Navigation">
   <jsp:setProperty name="navigation" property="*"/>
  </jsp:useBean>
  <%= navigation.getName()%>
<% }
%>


Goods.java

package shopping;

public class Goods {
 String name, company;
 int price, qty;
 
 public Goods() {}
 public Goods(String name, String company, int price, int qty){
  this.name=name;
  this.company=company;
  this.price=price;
  this.qty=qty;
 }
 public void setName(String name){
  this.name=name;
 }
 public void setCompany(String company){
  this.company=company;
 }
 public void setPrice(int price){
  this.price=price;
 }
 public void setQty(int qty){
  this.qty=qty;
 }
 public String getName(){
  return name;
 }
 public String getCompany(){
  return company;
 }
 public int getPrice(){
  return price;
 }
 public int getQty(){
  return qty;
 }
 public int getSumPrice(){
  return price*qty;
 }
}


Notebook.java

package shopping;

public class Notebook extends Goods {
 
 String CPU, memory;
 
 public Notebook() {}
 
 public Notebook(String name, String company, int price, int qty, String CPU, String memory){
  super(name, company, price, qty);
  this.CPU=CPU;
  this.memory=memory;
 }
 
 public void setCPU(String CPU){
  this.CPU=CPU;
 }
 
 public void setMemory(String memory){
  this.memory=memory;
 }
 
 public String getCPU(){
  return CPU;
 }
 
 public String getMemory(){
  return memory;
 }
}


Navigation.java

package shopping;

public class Navigation extends Goods {
 
 String screenSize;
 
 public Navigation() {}

 public Navigation(String name, String company, int price, int qty, String screenSize) {
  super(name, company, price, qty);
  this.screenSize=screenSize;
 }
 
 public void setScreenSize(String screenSize){
  this.screenSize=screenSize;
 }
 
 public String getScreenSize(){
  return screenSize;
 }
}


MP3.java

package shopping;

public class MP3 extends Goods {
 
 String memory;
 
 public MP3() {}

 public MP3(String name, String company, int price, int qty, String memory) {
  super(name, company, price, qty);
  this.memory=memory;
 }
 
 public void setMemory(String memory){
  this.memory=memory;
 }
 
 public String getMemory(){
  return memory;
 }
}


Cart.java

package shopping;
import java.util.*;

public class Cart {
 Vector<Goods> v = new Vector<Goods>();
 public Cart() {}

}