WebMarket
dto 내 Product.java
===============
package dto;
import java.io.Serializable;
//Product라는 클래스 즉 자바빈 객체가 되는 것이다.이클래스작성후 products.jsp 에 가서
//JSP use bean 을 써서 클래스를 쓴다
public class Product implements Serializable {
/**
*
*/
private static final long serialVersionUID = 5172686590827527119L; //객체 직렬화 때문에
private String productId;
private String pname;
private Integer unitPrice;
private String description;
private String manufacturer;
private String category;
private long unitsInStock;
private String condition;
public Product() {
// TODO Auto-generated constructor stub
super();//조상클래스만듦
}
public Product(String productId, String pname, Integer unitPrice) {
super();
this.productId = productId;
this.pname = pname;
this.unitPrice = unitPrice;
}
public String getProductId() {
return productId;
}
public void setProductId(String productId) {
this.productId = productId;
}
public String getPname() {
return pname;
}
public void setPname(String pname) {
this.pname = pname;
}
public Integer getUnitPrice() {
return unitPrice;
}
public void setUnitPrice(Integer unitPrice) {
this.unitPrice = unitPrice;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getManufacturer() {
return manufacturer;
}
public void setManufacturer(String manufacturer) {
this.manufacturer = manufacturer;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public long getUnitsInStock() {
return unitsInStock;
}
public void setUnitsInStock(long unitsInStock) {
this.unitsInStock = unitsInStock;
}
public String getCondition() {
return condition;
}
public void setCondition(String condition) {
this.condition = condition;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
}
=======================================================
dao 내 ProductRepository.java
=======================
package dao;
import java.util.ArrayList;
import dto.Product;
public class ProductRepository {
private ArrayList<Product> listOfProducts = new ArrayList<>();//제네릭 타입이니깐 프로덕트 클래스를 담는다.
public ProductRepository() {
// TODO Auto-generated constructor stub
Product phone = new Product("P1234", "Galaxy S20", 1200000);
phone.setDescription("5.25-inch, 1334*750 HD display, 16-megapixel Camera");
phone.setCategory("Smart Phone");
phone.setManufacturer("SAMSUNG");
phone.setUnitsInStock(1000);
phone.setCondition("New");
Product notebook = new Product("P1235", "LG GRAM", 2000000);
notebook.setDescription("13.3-inch, IPS FULL HD display, Intel Core Processor");
notebook.setCategory("Notebook");
notebook.setManufacturer("LG");
notebook.setUnitsInStock(1000);
notebook.setCondition("Refurbished");
Product tablet = new Product("P1236", "Galaxy Tab", 900000);
tablet.setDescription("212.8*125.6*6.6mm, Super AMOLED display, Octa-Core Processor");
tablet.setCategory("Tablet");
tablet.setManufacturer("SAMSUNG");
tablet.setUnitsInStock(1000);
tablet.setCondition("Old");
listOfProducts.add(phone);
listOfProducts.add(notebook);
listOfProducts.add(tablet);
}
public ArrayList<Product> getAllProducts() {
return listOfProducts;
}
}
=============================================================================
여기서부터 WebContent 폴더 내에 있는 파일들
products.jsp
=========
<%--처음에 dynamic web project 만들고나서 톰캣 서버에 add and remove
에서 프로젝트 추가해준다. 프로젝트에 ALT + enter 로 BUILD PATH 로 들어
가서 라이브러리탭에 ADD EXTERNAL JARS 를 눌러 jsp-api.jar 와
servlet-api.jar 파일을 불러와 어플라이 앤 클로즈 한다 --%>
<%@page import="dto.Product"%>
<%@page import="java.util.ArrayList"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>
<%--scope를 세션으로 줌. 우리가 연결되어있는 동안 움직이게 하기 위해서--%>
<jsp:useBean id="productDAO" class="dao.ProductRepository" scope="session"/>
<!DOCTYPE html>
<html>
<head>
<!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous"> -->
<!-- 위에는 보안때문에 있는 것들임 밑에는 그것들을 필요없어 지움 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css">
<meta charset="UTF-8">
<title>상품목록</title>
</head>
<body>
<jsp:include page="menu.jsp" />
<div class="jumbotron">
<div class="container">
<h1 class="display-3">상품 목록</h1>
</div>
</div>
<%
//상품목록을 다 가져온다.
ArrayList<Product> listOfProducts = productDAO.getAllProducts();
%>
<div class="container">
<div class="row" align="center">
<%
for(int i = 0 ; i < listOfProducts.size() ; i = i + 1) {
Product product = listOfProducts.get(i);
%>
<div class="col-md-4">
<h3><%= product.getPname() %></h3>
<p><%= product.getDescription() %></p>
<p><%= product.getUnitPrice() %>원</p>
</div>
<%
}
%>
</div>
<hr>
</div>
<jsp:include page="footer.jsp" />
<%-- <h1><%= greeting %></h1>
<h3><%= tagline %></h3> --%>
</body>
</html>
============================================
menu.jsp
=======
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>
<nav class="navbar navbar-expand navbar-dark bg-dark"> <!-- 네비게이션 바를 만든다. -->
<div class="container"> <!-- container라는 클래스 부터는 무엇인가 내용을 표식 -->
<div class="navbar-header"> <!-- 네비게이션 헤더 -->
<a class="navbar-brand" href="./welcome.jsp">홈</a>
</div>
</div>
</nav>
==========================================================================
welcome.jsp
=========
<%--처음에 dynamic web project 만들고나서 톰캣 서버에 add and remove
에서 프로젝트 추가해준다. 프로젝트에 ALT + enter 로 BUILD PATH 로 들어
가서 라이브러리탭에 ADD EXTERNAL JARS 를 눌러 jsp-api.jar 와
servlet-api.jar 파일을 불러와 어플라이 앤 클로즈 한다 --%>
<%@page import="java.util.Calendar"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>
<!DOCTYPE html>
<html>
<head>
<!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous"> -->
<!-- 위에는 보안때문에 있는 것들임 밑에는 그것들을 필요없어 지움 -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css">
<meta charset="UTF-8">
<title>웹쇼핑몰</title>
</head>
<body>
<jsp:include page="menu.jsp" />
<%
String greeting = "쇼핑몰에 오신것을 환영합니다.";
String tagline = "Welcome to Web Market!";
%>
<div class="jumbotron">
<div class="container">
<h1 class="display-3"><%= greeting %></h1>
</div>
</div>
<div class="container">
<div class="text-center">
<h3><%= tagline %></h3>
<%
//접속시간을 표식하기 위한 자바 코드
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
int am_pm = calendar.get(Calendar.AM_PM);
String ampm = null;
if(am_pm == 0){
ampm = "오전";
}else{
ampm = "오후";
}
String connectTime = hour + ":" + minute + ":" + second + " " + ampm;
out.println("현재 접속 시간 : " + connectTime + "\n");
%>
</div>
<hr>
</div>
<jsp:include page="footer.jsp" />
<%-- <h1><%= greeting %></h1>
<h3><%= tagline %></h3> --%>
</body>
</html>
====================================================================
footer.jsp
=======
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %>
<%-- 여기서 아무리 UTF-8로 설정을 했다하더라도 얘도 페이지 이기 때문에 페이지 정보를 주면
된다 인클루드로 모듈화를 하면 모듈이기 때문에 페이지 별로 값을 줘야 한다 --%>
<div class="text-center">
<footer class="container">
<p><b>저작권 copyRight WebMarket</b></p>
<p><b>Since 2020 by Anonymous</b></p>
</footer>
</div>
=============================================================================