controller/Product

package contorller;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


import model.ProductDAO;
import model.ProductVO;
import model.SaleDAO;


@WebServlet(value={"/list","/insert","/delete","/read","/update"})
public class Product extends HttpServlet {
	private static final long serialVersionUID = 1L;
	ProductDAO dao = new ProductDAO();

       
   
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		RequestDispatcher dis =null;
		
	      SaleDAO sdao= new SaleDAO();

		switch(request.getServletPath()) {
		case "/read":
			Date today= new Date();
			SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
			request.setAttribute("today", sdf.format(today));
			String code =request.getParameter("code");
			request.setAttribute("sales", sdao.list(Integer.parseInt(code)));
			request.setAttribute("vo", dao.read(Integer.parseInt(code))); 
			dis=request.getRequestDispatcher("read.jsp");
			dis.forward(request, response);//read.jsp로 이동
			break;
		case "/delete":
			code = request.getParameter("code");
			
			
			dao.delete(Integer.parseInt(code));
			response.sendRedirect("list");
			break;
		case "/list":
			request.setAttribute("products", dao.list()); //list결과를 array에 담아서 list.jsp로 이동한다.
			dis= request.getRequestDispatcher("list.jsp");
			dis.forward(request, response);
			break;
		case "/insert":
			dis= request.getRequestDispatcher("insert.jsp");
			dis.forward(request, response);
			break;
		}
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	      request.setCharacterEncoding("utf-8"); //한글셋팅
	      ProductVO vo=new ProductVO();
	      vo.setTitle(request.getParameter("title"));
	      vo.setPrice(Integer.parseInt(request.getParameter("price")));
	      
	      switch(request.getServletPath()) {
	      case "/insert":
	         dao.insert(vo);
	         response.sendRedirect("list");
	         break;
	      case "/update":
	    	 String code = request.getParameter("code");
	         vo.setCode(Integer.parseInt(code));
	         System.out.println(vo.toString());
	   
	         dao.update(vo);
	         response.sendRedirect("list");
	      }
	   }
}

controller/Sale

package contorller;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.SaleDAO;
import model.SaleVO;

@WebServlet(value={"/sinsert","/sdelete","/supdate"})
public class Sale extends HttpServlet {
	private static final long serialVersionUID = 1L;
	SaleDAO dao = new SaleDAO();
	SaleVO vo = new SaleVO();
   
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		int id=Integer.parseInt(request.getParameter("id"));
		int code = Integer.parseInt(request.getParameter("code"));
		switch(request.getServletPath()) {
		case "/sdelete":
			
			dao.delete(id);
			response.sendRedirect("read?code="+code);
			break;
			
		 case "/supdate":
	    	 int qnt =Integer.parseInt(request.getParameter("qnt"));
	        
	 
	         vo.setCode(code);
	         vo.setId(id);
	         vo.setQnt(qnt);
	         dao.update(vo);
	         System.out.println(vo.toString());
	         response.sendRedirect("read?code="+code);
	         break;
	      }
		}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		SaleVO vo = new SaleVO();
		switch(request.getServletPath()) {
		case "/sinsert":
			
			vo.setCode(Integer.parseInt(request.getParameter("code")));
			vo.setDate(request.getParameter("date"));
			vo.setQnt(Integer.parseInt(request.getParameter("qnt")));
			vo.setPrice(Integer.parseInt(request.getParameter("price")));
			System.out.println(vo.toString());
			dao.insert(vo);
			response.sendRedirect("read?code="+vo.getCode());
			break;
		
		
		  }
	  }
	}

model/ProductVO

package model;

public class ProductVO {
	private int code;
	private String title;
	private int price;
	public int getCode() {
		return code;
	}
	public void setCode(int code) {
		this.code = code;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public int getPrice() {
		return price;
	}
	public void setPrice(int price) {
		this.price = price;
	}
	
	@Override
	public String toString() {
		return "ProductVO [code=" + code + ", title=" + title + ", price=" + price + "]";
	}	
}

model/ProductDAO

 package model;

import java.sql.*;
import java.util.*;

public class ProductDAO {
	
	// 수정
	   public void update(ProductVO vo) {
	      try {
	         String sql="update tbl_product set title=?,price=? where code=?";
	         PreparedStatement ps=Database.CON.prepareStatement(sql);
	         ps.setString(1, vo.getTitle());
	         ps.setInt(2, vo.getPrice());
	         ps.setInt(3, vo.getCode());
	         ps.execute();
	      }catch(Exception e) {
	         System.out.println("update:" + e.toString());
	      }
	   }
	
	//정보읽기
	public ProductVO read(int code){
		ProductVO vo = new ProductVO();
		try {
			String sql = "select * from tbl_product where code=?";
			PreparedStatement ps=Database.CON.prepareStatement(sql);
			ps.setInt(1, code);
			ResultSet rs = ps.executeQuery();
			if(rs.next()) {
				vo.setCode(rs.getInt("code"));
				vo.setTitle(rs.getString("title"));
				vo.setPrice(rs.getInt("price"));
				System.out.println(vo.toString());
			}
			
		}catch (Exception e) {
			System.out.println("read : "+e.toString());
		}
		return vo;
	}
	
	//상품 삭제 
	public void delete(int code) {
		try {
			String sql ="delete from tbl_product where code=?";
			PreparedStatement ps=Database.CON.prepareStatement(sql);
			ps.setInt(1, code);
			ps.execute();
		}catch (Exception e) {
			System.out.println("delete: "+e.toString());
		}
	}
	
	//상품등록
	public void insert(ProductVO vo) {
		try {
			String sql ="insert into tbl_product(title,price) values(?,?)";
			PreparedStatement ps=Database.CON.prepareStatement(sql);
			ps.setString(1, vo.getTitle());
			ps.setInt(2, vo.getPrice());
			ps.execute();
			
		}catch (Exception e) {
			System.out.println("list : "+e.toString());
		}
	}
	
	//상품목록
	public ArrayList<ProductVO> list(){
		ArrayList<ProductVO> array = new ArrayList<ProductVO>();
		try {
			String sql = "select * from tbl_product order by code desc";
			PreparedStatement ps=Database.CON.prepareStatement(sql);
			ResultSet rs = ps.executeQuery();
			
			while(rs.next()) {
				ProductVO vo = new ProductVO();
				vo.setCode(rs.getInt("code"));
				vo.setTitle(rs.getString("title"));
				vo.setPrice(rs.getInt("price"));
				System.out.println(vo.toString());
				array.add(vo);
			}
			
		}catch (Exception e) {
			System.out.println("list : "+e.toString());
		}
		return array;
	}

}

WebContent/list.jsp

  • 상품의 목록을 보여주는 페이지이다. ```jsp <%@ page language=”java” contentType=”text/html; charset=UTF-8” pageEncoding=”UTF-8”%> <%@taglib prefix=”c” uri=”http://java.sun.com/jsp/jstl/core”%> <%@taglib prefix=”fmt” uri=”http://java.sun.com/jsp/jstl/fmt”%> <!DOCTYPE html>
상품목록

상품목록

상품등록
상품번호상품이름상품가격
${vo.code} ${vo.title} </tr> </c:forEach> </table> </body> </html> ``` - 삭제 버튼을 누르면 상품번호 삭제도 가능하다. ( sql문으로 code 를 읽어서 삭제함) ![jsp상품목록]](/assets/images/jsp상품목록.JPG) ## WebContent/insert.jsp - 상품을 등록하는 페이지이다. 이름과 가격을 받아서 목록에 보여준다. 상품번호는 auto_increment 로 자동으로 1씩증가한다. ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> 상품등록

상품등록

상품목록
상품코드 :
상품이름:
상품가격:
``` ![jsp상품등록]](/assets/images/jsp상품등록.JPG) ## WebContent/read.jsp - 상품이름을 클릭하면 상품번호,이름,가격을 가져와서 정보를 보여준다. ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> <!DOCTYPE html> 상품정보

상품정보

상품목록
상품번호 :
상품이름 :
상품가격 :

${vo.title}의 매출현황

판매일: 판매가: 판매수량
번호판매일수량판매가총판매액삭제
${vo.id} ${vo.date} ${vo.qnt}
``` - 매출현황sale 내역이 밑에 보여지고, 안에서 매출현황 판매등록이 가능하고, 삭제가능 , 수량수정이 가능하다. ![jsp상품정보](/assets/images/jsp상품정보.JPG)

댓글남기기