JAVA - 23
카테고리: java
Welcome01.jsp
- 디렉티브:
첫 번째 줄은 페이지 언어를 Java로, 콘텐츠 유형을 HTML로 설정하며, UTF-8 문자 인코딩을 사용합니다. 두 번째 줄은 날짜와 관련된 작업을 위해 java.util.Date 클래스를 가져옵니다. - HTML 구조:
코드에는 <head>와 <body> 섹션이 포함되어 있습니다. Bootstrap 4 CSS 스타일시트를 CDN(콘텐츠 전송 네트워크)에서 가져옵니다. 페이지 제목은 “Welcome”으로 설정됩니다. - JSP 스크립틀:
스크립틀은 <%!로 시작하여 %>로 끝납니다. greeting과 tagline이라는 두 개의 문자열 변수를 선언하고, 환영 메시지 문자열을 저장합니다. - Jumbotron:
Jumbotron은 콘텐츠를 강조하기 위해 사용되는 Bootstrap 구성 요소입니다. greeting 변수의 값을 갖는 <h1> 제목을 포함합니다. - 컨테이너 및 제목:
Jumbotron 내부에 또 다른 컨테이너가 생성되어 태그라인 제목을 보유합니다. tagline 변수가 <h3> 제목으로 표시됩니다. - 날짜와 시간 표시:
스크립틀(<%)은 JSP 내에서 Java 코드를 실행하기 위해 사용됩니다. java.util.Date 클래스를 사용하여 현재 날짜와 시간을 얻습니다. 코드는 현재 시간, 분 및 초를 계산하고 AM 또는 PM인지 확인합니다. 시간은 out.println() 메서드를 사용하여 표시됩니다. - 포함된 JSP 파일:
이 JSP는 “Products.jsp”와 “footer.jsp”라는 두 개의 추가 파일을 포함합니다. “Products.jsp”의 내용은 주요 JSP에 <%@ include file=”./Products.jsp”%>를 사용하여 포함됩니다. 마찬가지로 “footer.jsp”의 내용은 <%@ include file=”./footer.jsp”%>를 사용하여 포함됩니다.
Products.jsp
- 디렉티브:
- 첫 번째 줄은 페이지 언어를 Java로 설정하고, 콘텐츠 유형을 UTF-8로 설정합니다.
- 두 번째 줄에서는
ArrayList
클래스와Product
클래스를 import합니다.
- JSP:
<jsp:useBean>
태그를 사용하여productDAO
라는 이름의 세션 범위의 JavaBean을 사용합니다. 해당 JavaBean은com.example.data_Access_Object.ProductRepository
클래스의 인스턴스입니다. - HTML 구조:
- HTML 구조를 정의하는
<html>
,<head>
,<body>
태그가 포함됩니다. - Bootstrap 4의 스타일시트를 사용하기 위해 CDN을 통해 스타일시트를 불러옵니다.
- 페이지의 제목은 “상품 목록”으로 설정됩니다.
- HTML 구조를 정의하는
- 메뉴 포함:
- “menu.jsp” 파일의 내용은
<%@ include file="./menu.jsp" %>
를 사용하여 포함됩니다.
- “menu.jsp” 파일의 내용은
- Jumbotron:
- Jumbotron은 특정 내용을 강조하기 위해 사용되는 Bootstrap 컴포넌트입니다.
<h1>
태그 내에 “상품 목록”이 출력됩니다.
- 상품 목록 표시:
productDAO
의getAllProducts()
메서드를 호출하여 모든 상품을 가져옵니다.listOfProducts
변수에 결과를 저장합니다.
- 반복문을 사용하여 상품을 표시:
listOfProducts
에 저장된 각 상품에 대해 반복문을 실행합니다.product
변수를 사용하여 각 상품의 정보에 접근합니다.- 상품 이름, 설명, 가격을 출력합니다.
- “Product.jsp” 페이지로 상세 정보를 표시하는 링크를 제공합니다.
Product.jsp
디렉티브: 페이지 언어를 Java로 설정하고, 콘텐츠 유형을 UTF-8로 설정합니다. com.example.data_Transfer_Object.Product 클래스를 import합니다. 세션 범위에서 사용할 productDAO라는 이름의 JavaBean을 정의합니다.
HTML 구조: HTML 구조를 정의하는 <html>, <head>, <body> 태그가 포함됩니다. Bootstrap 4의 스타일시트를 사용하기 위해 CDN을 통해 스타일시트를 불러옵니다. 페이지의 제목은 “상품정보”로 설정됩니다.
메뉴 포함: “menu.jsp” 파일의 내용은 <%@ include file=”menu.jsp” %>를 사용하여 포함됩니다. Jumbotron: Jumbotron은 특정 내용을 강조하기 위해 사용되는 Bootstrap 컴포넌트입니다. ‘<h1>‘태그 내에 “상품 정보”가 출력됩니다.
상품 정보 표시: request.getParameter(“id”)를 사용하여 “id” 파라미터 값을 가져옵니다. 이는 상품의 고유 식별자입니다. productDAO의 getProductById() 메서드를 호출하여 해당 식별자에 해당하는 상품을 가져옵니다. product 변수에 결과를 저장합니다. 상품의 이름, 설명, 상품 코드, 제조사, 분류, 재고, 가격 등을 출력합니다. 상품 주문 및 상품 목록 링크:
“상품 주문”과 “상품 목록”으로 이동하는 링크를 제공합니다.
하단 포함: “footer.jsp” 파일의 내용은 <%@ include file=”footer.jsp” %>를 사용하여 포함됩니다.
data_Access_Object.ProductRepository.java
- 클래스 정의:
ProductRepository
클래스를 정의합니다.listOfProducts
라는 이름의ArrayList<Product>
객체를 선언하여 통합 저장소 컬렉션 리스트를 생성합니다.
- 생성자:
ProductRepository
클래스의 생성자를 정의합니다.- 생성자 내에서는 세 가지 상품에 대한 정보를 가지고
Product
객체를 생성하고, 각 객체에 데이터를 저장합니다. - 생성한
Product
객체를listOfProducts
에 추가합니다.
getAllProducts()
메서드:- 통합 저장소에 저장된 모든 상품 데이터를 반환하는 메서드입니다.
listOfProducts
를 반환합니다.
getProductById(String productId)
메서드:- 상품의 아이디를 기반으로 상품의 상세 정보를 가져오는 메서드입니다.
productId
를 매개변수로 받아 해당 아이디와 일치하는 상품을 찾습니다.listOfProducts
를 반복하여 상품의 아이디와 일치하는 상품을 찾고, 해당 상품을 반환합니다.- 일치하는 상품이 없는 경우
null
을 반환합니다.
data_transfer_Object.Product.java
Product
클래스 정의:Product
클래스는Serializable
인터페이스를 구현합니다. 이는 객체를 직렬화할 수 있도록 합니다.private
접근 제한자를 사용하여 클래스의 필드들을 선언합니다.- 필드들은 상품의 아이디(
productId
), 상품명(pname
), 상품가격(unitPrice
), 상품설명(description
), 제조사(manufacturer
), 분류(category
), 재고수(unitsInStock
), 상품 상태(condition
)를 나타냅니다.
- 생성자:
Product
클래스에는 기본 생성자(Product()
)와 매개변수를 받는 생성자(Product(String productId, String pname, Integer unitPrice)
)가 정의되어 있습니다.
- Getter와 Setter 메서드:
- 필드에 접근하기 위한 Getter와 Setter 메서드들이 정의되어 있습니다.
- 자동으로 생성되는 Getter와 Setter 메서드는
get
또는set
접두사를 사용하여 필드의 값을 반환하거나 설정합니다.
serialVersionUID
:serialVersionUID
는 직렬화된 객체의 버전을 식별하는 데 사용되는 고유 식별자입니다.
댓글 남기기