본문 바로가기
JSP

JSP(상품재고조회 프로그램)_2024-08-30

by 앵보몬 2024. 9. 2.
728x90
반응형

상품재고조회 프로그램

요구사항

1) 사용자 인터페이스

2) 설명 : 메뉴 기반의 텍스트 사용자 인터페이스 제공

3) 사례 : "1. 모든상품조회 2. 개별상품조회 "

4) 핵심 : 사용자가 쉽게 각 기능을 선택

 

예외 처리

1) 설명 : 파일 입출력 및 잘못된 입력에 대한 예외 처리

2) 사례 : 파일이 없을 경우, 잘못된 수량 입력

3) 핵심 : 안정적인 프로그램 동작 보장

 

Product.jsp
0.00MB
electronic.java
0.00MB

 

DB

create table products (
    product_id number(4) primary key,
    product_name varchar2(20) not null,
    category varchar2(20),
    price number(10, 2),
    description varchar2(20),
    stock_quantity number(10, 2)
    );
   
insert into products values (1, '아이폰 15', '스마트폰', 1500000, '최신 스마트폰', 52000);
insert into products values (2, '삼성 갤럭시 s24', '스마트폰', 1400000, '고성능 스마트폰', 62000);
insert into products values (3, '맥북 프로 14', '노트북', 2500000, '고급형 노트북', 52000);
insert into products values (4, '삼성 노트북', '노트북', 1800000, '가성비 노트북', 62000);
insert into products values (5, '에어팟 프로 2세대', '이어폰', 350000, '무선 노이즈캔슬링 이어폰', 62000);
COMMIT;
 

 

product.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>상품재고조회</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>
    <h1>앵보전자랜드 재고조회</h1>
    <form id="ResearchForm" method="get" action="/JSP/electronic">
    상품조회 : <input type="text" name="merchandise" id="research" value=""/>
    <input type="submit" name = "product" value="모든상품조회">
    <input type="submit" name = "product" value="개별상품조회">  
    </form>
   
    <section id="result">
    </section>
</body>
</html>
 

 

electronic.jsp

package common;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class electronic
 */
public class electronic extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public electronic() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        //response.getWriter().append("Served at: ").append(request.getContextPath());
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        ResultSet rs = null;
        String merchandise = request.getParameter("merchandise");
        String product = request.getParameter("product");
        String sql = "";
        JDBConnect jdbc = new JDBConnect();
       
        PreparedStatement stmt;
       
        try {
           
            if ("개별상품조회".equals(product)) {
                sql = "select * from products where category = ?";
                stmt = jdbc.con.prepareStatement(sql);
                stmt.setString(1, merchandise);
                   
                } else {
                    sql = "select * from products";
                    stmt = jdbc.con.prepareStatement(sql);
                }
                               
                rs = stmt.executeQuery();
                while (rs.next()) {
                    String product_id = rs.getString("product_id");
                    String product_name = rs.getString("product_name");
                    String category = rs.getString("category");
                    int price = rs.getInt("price");
                    String description = rs.getString("description");
                    int stock_quantity = rs.getInt("stock_quantity"); //
//                  
                    out.println("<hr>");
                    out.println("<h2>상품 정보 검색</h2>");
                    out.println("<b>상품ID : </b>" + product_id + "<br>");
                    out.println("<b>상품명 : </b>" + product_name + "<br>");
                    out.println("<b>상품종류 : </b>" + category + "<br>");
                    out.println("<b>가격 : </b>" + price + "<br>");
                    out.println("<b>상품의 특징 : </b>" + description + "<br>");
                    out.println("<b>상품의 수량 : </b>" + stock_quantity + "<br>");  
//                  
                }
                out.println("<br>");
                out.println("<a href=\"javascript:history.back()\">Go back</a>");
                out.println("</body></html>");
           
        }catch (SQLException e){
            out.println("데이터베이스 접속에러");
        }
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
 

 

728x90
반응형

'JSP' 카테고리의 다른 글

JSP(표만들기)_2024-09-03  (6) 2024.09.04
JSP EL (Expression Language)_2024-09-02  (0) 2024.09.02
JSP(숫자계산 프로그램)_2024-08-29  (0) 2024.08.30
JSP(회원 정보 관리 프로그램)_2024-08-29  (0) 2024.08.30
JSP(Oracle_DB업로드)_2024  (0) 2024.08.28