K 개발자

JSP BookMarket 만들기 - 3 본문

Web/JSP

JSP BookMarket 만들기 - 3

ddingz 2021. 8. 6. 18:07

이전 글
JSP BookMarket 만들기 - 1
JSP BookMarket 만들기 - 2

실행 환경
자바 개발 환경 : jdk-15.0.2
웹 서버 환경 : Apache Tomcat v9.0
통합 개발 환경 : Eclipse IDE for Enterprise Java Developers

도서 목록 표시하기

src 폴더에 dto 패키지를 생성하고 이 패키지에 Book 클래스를 생성한다.

  • 멤버 변수를 선언한다.
  • 기본 생성자와 선언된 멤버 변수인 도서 아이디, 도서명, 가격을 매개변수로 하는 생성자를 작성한다.
  • 모든 멤버 변수의 Setter/Getter() 메소드를 각각 작성한다.
// Book.java

package dto;

import java.io.Serializable;

public class Book implements Serializable {
	private static final long serialVersionUID = -4274700572038677000L;

	private String bookId; // 도서 아이디
	private String name; // 도서명
	private Integer unitPrice; // 가격
	private String author; // 저자
	private String description; // 설명
	private String publisher; // 출판사
	private String category; // 분류
	private long unitsInStock; // 재고 수
	private long totalPages; // 페이지 수
	private String releaseDate; // 출판일(월/년)
	private String condition; // 신규 도서 or 중고 도서 or E-Book

	public Book() {
		super();
	}

	public Book(String bookId, String name, Integer unitPrice) {
		this.bookId = bookId;
		this.name = name;
		this.unitPrice = unitPrice;
	}

	public String getBookId() {
		return bookId;
	}

	public void setBookId(String bookId) {
		this.bookId = bookId;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public Integer getUnitPrice() {
		return unitPrice;
	}

	public void setUnitPrice(Integer unitPrice) {
		this.unitPrice = unitPrice;
	}

	public String getAuthor() {
		return author;
	}

	public void setAuthor(String author) {
		this.author = author;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public String getPublisher() {
		return publisher;
	}

	public void setPublisher(String publisher) {
		this.publisher = publisher;
	}

	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 long getTotalPages() {
		return totalPages;
	}

	public void setTotalPages(long totalPages) {
		this.totalPages = totalPages;
	}

	public String getReleaseDate() {
		return releaseDate;
	}

	public void setReleaseDate(String releaseDate) {
		this.releaseDate = releaseDate;
	}

	public String getCondition() {
		return condition;
	}

	public void setCondition(String condition) {
		this.condition = condition;
	}
}

src 폴더에 dao 패키지를 생성하고 이 패키지에 BookRepository 클래스를 생성한다.

  • 멤버 변수 ArrayList<Book> 객체 타입의 listOfBooks를 선언한다.
  • 기본 생성자를 생성하고 여기에 멤버 변수를 초기화하도록 값을 설정한다.
  • 도서 목록을 가져오는 ArrayList<Book> 객체 타입의 getAllBooks() 메소드를 작성한다.
// BookRepository.java

package dao;

import java.util.ArrayList;

import dto.Book;

public class BookRepository {

	private ArrayList<Book> listOfBooks = new ArrayList<Book>();

	public BookRepository() {
		Book html = new Book("ISBN1234", "HTML5+CSS3", 15000);
		html.setAuthor("황재호");
		html.setCategory("Hello Coding");
		html.setCondition("New");
		html.setDescription(
				"워드나 PPT 문서를 만들 수 있나요? 그러면 문제 없습니다. 지금 바로 웹페이지 제작에 도전해보세요. 지금 당장 컴퓨터가 없어도 괜찮습니다. 코드와 실행 화면이 바로 보여서 눈으로만 읽어도 어떻게 작동하는지 쉽게 파악할 수 있는 것은 기본이고, 중간중간 퀴즈를 추가하여 재미있게 게임하듯 복습할 수 있습니다.");
		html.setPublisher("한빛미디어");
		html.setReleaseDate("2018/03/02");
		html.setTotalPages(288);
		html.setUnitsInStock(1000);

		Book java = new Book("ISBN1235", "쉽게 배우는 자바 프로그래밍", 27000);
		java.setAuthor("우종정");
		java.setCategory("IT모바일");
		java.setCondition("New");
		java.setDescription(
				"객체 지향의 핵심과 자바의 현대적 기능을 충실히 다루면서도초보자가 쉽게 학습할 수 있게 구성했습니다. 시각화 도구를 활용한 개념 설명과 군더더기 없는 핵심 코드를 통해 개념과 구현을 한 흐름으로 학습할 수 있습니다. 또한 ‘기초 체력을 다지는 예제 → 셀프 테스트 → 생각을 논리적으로 정리하며 한 단계씩 풀어 가는 도전 과제 → 스토리가 가미된 흥미로운 프로그래밍 문제’ 등을 통해 프로그래밍 실력을 차근차근 끌어올릴 수 있습니다.");
		java.setPublisher("한빛아카데미");
		java.setReleaseDate("2017/08/02");
		java.setTotalPages(692);
		java.setUnitsInStock(1000);

		Book spring = new Book("ISBN1236", "스프링4 입문", 27000);
		spring.setAuthor("하세가와 유이치, 오오노 와타루, 토키 코헤이(권은철, 전민수)");
		spring.setCategory("IT모바일");
		spring.setCondition("New");
		spring.setDescription(
				"스프링은 단순히 사용 방법만 익히는 것보다 아키텍처를 어떻게 이해하고 설계하는지가 더 중요합니다. 예제를 복사해 붙여넣는 식으로는 실제 개발에서 스프링을 제대로 활용할 수 없습니다. 이 책에서는 웹 애플리케이션의 기초를 다지고 스프링 코어를 살펴보며 클라우드 네이티브 입문까지 다룹니다. 이제 막 실무에 뛰어든 웹 애플리케이션 초급자나 개발 경험은 있지만 스프링은 사용해본 적 없는 분을 대상으로 가능한 한 쉽게 설명합니다.");
		spring.setPublisher("한빛미디어");
		spring.setReleaseDate("2017/11/01");
		spring.setTotalPages(520);
		spring.setUnitsInStock(1000);

		listOfBooks.add(html);
		listOfBooks.add(java);
		listOfBooks.add(spring);
	}

	public ArrayList<Book> getAllBooks() {
		return listOfBooks;
	}
}

WebContent 폴더에 books.jsp 파일을 생성하고 자바빈즈 BookRepository 클래스를 이용하여 도서 목록을 출력한다.

<%-- books.jsp --%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.util.ArrayList"%>
<%@ page import="dto.Book"%>
<jsp:useBean id="bookDAO" class="dao.BookRepository" scope="session" />
<html>
<head>
<link rel="Stylesheet"
	href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<title>도서 목록</title>
</head>
<body>
	<jsp:include page="menu.jsp" />
	<div class="jumbotron">
		<div class="container">
			<h1 class="display-3">도서 목록</h1>
		</div>
	</div>
	<%
		ArrayList<Book> listOfBooks = bookDAO.getAllBooks();
	%>
	<div class="container">
		<%
			for (int i = 0; i < listOfBooks.size(); i++) {
				Book book = listOfBooks.get(i);
		%>
		<p><h5><b>[<%=book.getCategory()%>] <%=book.getName()%></b></h5>
		<p style="padding-top: 20px"><%=book.getDescription().substring(0, 100)%>...
		<p><%=book.getAuthor()%> | <%=book.getPublisher()%> | <%=book.getUnitPrice()%>원
		<hr>
		<%
			}
		%>
	</div>
	<jsp:include page="footer.jsp" />
</body>
</html>

웹 브라우저에 'http://localhost:8080/BookMarket/books.jsp'를 입력하여 실행 결과를 확인한다.

다음 글
JSP BookMarket 만들기 - 4
JSP BookMarket 만들기 - 5
JSP BookMarket 만들기 - 6
JSP BookMarket 만들기 - 7
JSP BookMarket 만들기 - 8
JSP BookMarket 만들기 - 9
JSP BookMarket 만들기 - 10
JSP BookMarket 만들기 - 11
JSP BookMarket 만들기 - 12
JSP BookMarket 만들기 - 13
JSP BookMarket 만들기 - 마지막

'Web > JSP' 카테고리의 다른 글

JSP BookMarket 만들기 - 6  (0) 2021.08.06
JSP BookMarket 만들기 - 5  (0) 2021.08.06
JSP BookMarket 만들기 - 4  (0) 2021.08.06
JSP BookMarket 만들기 - 2  (0) 2021.08.06
JSP BookMarket 만들기 - 1  (0) 2021.08.06
Comments