※ 직접 풀이를 진행하였기 때문에, 정답에 오류가 있을 수 있습니다.
오류를 발견 시, 댓글로 남겨주시면 감사하겠습니다..!
※ 소스 코드는 Copy & Paste를 하면 제대로 출력되지 않아서,
최하단에 별도의 첨부파일로 제공합니다.
쉽게 배우는 JSP 웹 프로그래밍 (송미영 저)
request 내장 객체
getParameter(이름) - 요청 파라미터명이 이름인 값을 전달받음
getParameterValues(이름) - 모든 요청 파라미터명이 이름인 값을 배열로 전달받음
response 내장 객체
sendRedirect("주소") - 해당 주소로 페이지를 강제 이동
out 내장 객체
04.
request.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="request_process.jsp" method="get">
<p>아 이 디 : <input type="text" name="id"/></p>
<p>비밀번호 : <input type="password" name="password"/></p>
<p><input type="submit" value="전송" /></p>
</form>
</body>
</html>
request_process.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String output = request.getQueryString();
%>
<p>전송된 요청 파라미터 : <%=output %></p>
</body>
</html>
response.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.Calendar" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
response.setIntHeader("Refresh", 5);
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
String amPm;
if (hour > 12) {
hour -= 12;
amPm = "PM";
} else {
amPm = "AM";
}
String output = hour+":"+minute+":"+second+":"+amPm;
%>
<p>현재 시간은 <%=output%></p>
<a href="./response_data.jsp">Google 홈페이지로 이동하기</a>
</body>
</html>
response_data.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
response.sendRedirect("https://www.google.co.kr");
%>
</body>
</html>
BookRepository.java
package ch05.com.dao;
import java.util.ArrayList;
import ch04.com.dto.Book;
public class BookRepository {
ArrayList<Book> listOfBooks = new ArrayList<>();
public BookRepository() {
Book book1 = new Book("001", "HTML5+CSS3", "황재호");
book1.setUnitPrice(15000);
book1.setDescription("워드나 PPt 문서를 만들 수 있나요? ...");
book1.setPublisher("한빛미디어");
book1.setCategory("[Hello Coding]");
book1.setUnitInStock(100);
book1.setTotalPages(1000);
book1.setReleaseDate("2020.02.20");
book1.setCondition("new");
Book book2 = new Book("002", "쉽게 배우는 자바 프로그래밍", "우종중");
book2.setUnitPrice(27000);
book2.setDescription("객체 지향의 핵심과 자바의 현대적 기능을 충실히 ...");
book2.setPublisher("한빛아카데미");
book2.setCategory("[IT 모바일]");
book2.setUnitInStock(100);
book2.setTotalPages(1000);
book2.setReleaseDate("2020.02.20");
book2.setCondition("new");
Book book3 = new Book("003", "스프링4 입문", "하세가와 유이치, 오오노 와타루, 토키 코헤이(권은철, 전민수)");
book3.setUnitPrice(27000);
book3.setDescription("스프링은 단순히 사용 방법만 익히는 것보다 아키텍쳐를 어떻게 이해하고 ...");
book3.setPublisher("한빛미디어");
book3.setCategory("[IT 모바일]");
book3.setUnitInStock(100);
book3.setTotalPages(1000);
book3.setReleaseDate("2020.02.20");
book3.setCondition("new");
listOfBooks.add(book1);
listOfBooks.add(book2);
listOfBooks.add(book3);
}
public ArrayList<Book> getAllBooks() {
return listOfBooks;
}
public Book getBookId(String compareId) {
Book resultBook = null;
for (int i = 0; i < listOfBooks.size(); i++) {
Book book = listOfBooks.get(i);
if (book != null && book.getBookId() != null && book.getBookId().equals(compareId)) {
resultBook = book;
break;
}
}
return resultBook;
}
}
books.jsp (책에는 products.jsp로 작성하라고 되어 있지만, 이전 4장에서 books.jsp로 작성하였기에 그대로 사용합니다.)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.ArrayList" %>
<%@ page import="ch04.com.dto.Book" %>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:include page="menu.jsp" />
<div class="jumbotron">
<div class="container">
<h1 class="display-3">도서 목록</h1>
</div>
</div>
<jsp:useBean id="bookDAO" class="ch05.com.dao.BookRepository" scope="page" />
<%
ArrayList<Book> listOfBooks = bookDAO.getAllBooks();
%>
<div class="container">
<div class="row">
<%
for (int i = 0; i < listOfBooks.size(); i++) {
Book book = listOfBooks.get(i);
%>
<div class="col-md-10">
<h3><%=book.getCategory() + " " + book.getName()%></h3>
<br>
<p><%=book.getDescription()%>
<p><%=book.getAuthor() + " | " + book.getPublisher() + " | " + book.getUnitPrice() + "원"%>
</div>
<div class="col-md-2">
<p><a href="./book.jsp?id=<%=book.getBookId()%>" class="btn btn-secondary">상세 정보 »</a></p>
</div>
<%
}
%>
<hr />
</div>
</div>
<jsp:include page="footer.jsp" />
</body>
</html>
book.jsp
<%@page import="ch04.com.dto.Book"%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="java.util.Date"%>
<jsp:useBean id="bookDAO" class="ch05.com.dao.BookRepository" scope="page" />
<html>
<head>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
<title>Insert title here</title>
</head>
<body>
<%@ include file="menu.jsp"%>
<%!String greeting = "도서 정보";%>
<div class="jumbotron">
<div class="container">
<h1 class="display-3">
<%=greeting%>
</h1>
</div>
</div>
<%
String id = request.getParameter("id");
Book book = bookDAO.getBookId(id);
%>
<div class="container">
<div class="row">
<div class="col-md-12">
<h3><%=book.getCategory() + " " + book.getName()%></h3>
<p><%=book.getDescription()%>
<p><b>도서코드</b> : <span class="badge badge-danger"><%=book.getBookId()%></span></p>
<p><b>출판사</b> : <%=book.getPublisher()%></p>
<p><b>저자</b> : <%=book.getAuthor()%></p>
<p><b>재고수</b> : <%=book.getUnitInStock()%></p>
<p><b>총 페이지수</b> : <%=book.getTotalPages()%></p>
<p><b>출판일</b> : <%=book.getReleaseDate()%></p>
<h3><%=book.getUnitPrice()%>원</h3>
<p><a href="#" class="btn btn-info">도서 주문</a>
<a href="./books.jsp" class="btn btn-secondary">상품 목록</a>
</p>
</div>
</div>
<hr>
</div>
<%@ include file="footer.jsp"%>
</body>
</html>
[쉽게 배우는 JSP 웹 프로그래밍] 6장 연습문제 답안 (0) | 2021.03.21 |
---|---|
[쉽게 배우는 JSP 웹 프로그래밍] 6장 '폼 태그' 정리 요약 (0) | 2021.03.17 |
[쉽게 배우는 JSP 웹 프로그래밍] 4장 연습문제 답안 (1) | 2021.03.15 |
[쉽게 배우는 JSP 웹 프로그래밍] 4장 '액션 태그' 정리 요약 (0) | 2021.03.13 |
[쉽게 배우는 JSP 웹 프로그래밍] 3장 연습문제 답안 (4) | 2021.03.12 |