AngelPlayer`s Diary

※ 직접 풀이를 진행하였기 때문에, 정답에 오류가 있을 수 있습니다.

오류를 발견 시, 댓글로 남겨주시면 감사하겠습니다..!

 

※ 소스 코드는 Copy & Paste를 하면 제대로 출력되지 않아서,

최하단에 별도의 첨부파일로 제공합니다.

 

쉽게 배우는 JSP 웹 프로그래밍 (송미영 저)

 

 

 

01. 

request 내장 객체

 

getParameter(이름) - 요청 파라미터명이 이름인 값을 전달받음

getParameterValues(이름) - 모든 요청 파라미터명이 이름인 값을 배열로 전달받음

 

 

 

02. 

response 내장 객체

 

sendRedirect("주소") - 해당 주소로 페이지를 강제 이동

 

 

 

03. 

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>

 

 

 

05.

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>

 

 

 

06.

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">상세 정보 &raquo;</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>

 

 

ch05.zip
0.00MB
src.zip
0.00MB

 

공유하기

facebook twitter kakaoTalk kakaostory naver band