today_is

[ jsp ] 단순한 도서 관리 본문

java

[ jsp ] 단순한 도서 관리

ye_rang 2023. 12. 8. 11:12

오늘의 목표

여러 페이지를 이용하여 사용자에게 데이터를 입력받고, 데이터 삭제, 추가 등의 기능을 처리해보자

 


 

프로젝트 내부에 있는 파일 위치들

 

 

index.jsp add.jsp add-action.jsp delete.jsp list.jsp view.jsp view-show.jsp
대문페이지 도서 추가
(사용자에게 보여줄 입력 폼)
도서 추가
(데이터처리)
도서 삭제 목록 개별 보기
(자바 코드 부분 : 사용자에게는 보여지지 않음)
개별 보기
(출력 부분
: 사용자가 보는 화면)

 

 

 

 

 

 

 index.jsp 

: 대문페이지

 

index 페이지에서는 a 태그를 이용하여 도서 목록이 있는 list 페이지로 이동시키기

[ add.jsp ]



<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>index</title>
<style>


</style>

</head>
<body>

<h1>Book</h1>
<hr>

<a href="list.jsp"><button>도서 관리 프로그램</button></a>


</body>
</html>

 

 

 list.jsp 

: 현재 있는 도서 목록들을 보여준다

사용자는 이 페이지를 보면서 도서 추가 및 삭제를 할때 참고 가능 

 

 

list.jsp 에서 dao 객체를 application에 attribute로 등록

<%@page import="book.BookDTO"%>
<%@page import="book.BookDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>list.jsp</title>
</head>
<body>
<h1>도서 목록</h1>
<hr>

<p>
	<a href="add.jsp"><button>도서 추가</button></a>
</p>

<table border="1" cellpadding="10" cellspacing="0">
	<thead>
		<tr bgcolor="#dadada">
			<th>번호</th>
			<th>제목</th>
			<th>저자</th>
			<th>출판사</th>
			<th>출판일자</th>
		</tr>
	</thead>
	<tbody>
<%
	BookDAO dao = (BookDAO) application.getAttribute("dao");
	if(dao == null) {
		dao = new BookDAO();
		application.setAttribute("dao", dao);
	}
	
	
	
	for(BookDTO dto : dao.selectList()) {
	%>
	<tr>
		<td><%=dto.getIdx() %></td>
		<td>
			<a href="view.jsp?idx=<%=dto.getIdx()%>">
				<%=dto.getTitle() %>
			</a>
		</td>
		<td><%=dto.getAuthor() %></td>
		<td><%=dto.getPublisher() %></td>
		<td><%=dto.getPublishDate() %></td>
	</tr>
	<%		
	}
%>
	</tbody>
</table>

</body>
</html>

 

 

 

사용자에게 보여줄 화면

: add.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>add.jsp</title>
</head>
<body>

<h1>도서 추가</h1>
<hr>

<form action="add-action.jsp">
	<p><input type="text" name="title" placeholder="제목" required autofocus></p>
	<p><input type="text" name="author" placeholder="저자" required></p>
	<p><input type="text" name="publisher" placeholder="출판사" required></p>
	<p><input type="date" name="publishDate" required> (출판일자)</p>
	<p><input type="submit"></p>
</form>

</body>
</html>

 

실제 사용자에게 보여질 폼(add.jsp)

도서 추가


(출판일자)

 

 

 

실제 데이터 추가를 처리하는 화면 (사용자에게는 보여지지 않음)

: add-action.jsp

 

 

 

< jsp:useBean >

: 자바 객체를 생성함과 동시에 내장객체에 attribute로 등록한다
useBean으로 생성한 객체는 EL Tag로 참조 가능


list.jsp 에서 dao 객체를 application에 attribute로 등록했으니까
dao 객체도 EL Tag로 참조 가능

<%@ page import="book.BookDTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%--
	jsp:useBean 태그 사용
 --%>
<jsp:useBean id="dto" class="book.BookDTO" scope="page" />
<jsp:setProperty property="*" name="dto" />

${dao.insert(dto) }

<%
// 	response.sendRedirect("list.jsp");

	int lastIdx = BookDTO.getSeq();
	response.sendRedirect("view.jsp?idx=" + lastIdx);
%>

 

 

 


 

study_review

확실히 java기초만 배울때보다는 

jsp는 더 큰 범위에서 데이터간의 이동을 생각해야해서

복잡하지만 더 재밌게 느껴진다

 

오늘 공부하다가 useBean 태그의 이름에 오타를 내서

계속 데이터를 불러오지 못했던 불상사가 생겼었는데,

 

데이터를 불러오지 못하는 이유에는 태그를 잘못 사용했을 것이라는 생각이 들어서

문제를 단번에 해결할 수 있었다 !!

 

 

 

항상 오류가 난 부분이 있다면, 과정을 거꾸로 파헤쳐보자 !!