[JSP] JSP 실전

2024. 10. 5. 19:10JSP

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

간단한 도서관리 시스템을 구축하여 보자.

 


 

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

 

index.jsp

- 대문 페이지

index.jsp 에서는 a 태그를 이용하여 도서 목록이 있는 list.jsp로 이동시킨다.

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

</body>
</html>

 

list.jsp

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

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

 

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

<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

- 사용자에게 보여줄 화면

<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>

 

< 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);
%>

 


이제는 데이터 간의 이동을 다루다 보니 확실히 초반 보다 많이 복잡해지긴 했다.

하지만 복잡해진 만큼 더 재밌는 것도 사실이다.

 

아직까지 오타로 인한 오류가 많아서 타이핑을 좀 더 신중하게 하는 습관을 들여야겠다.

'JSP' 카테고리의 다른 글

[JSP] 게시판 (1)  (0) 2024.10.07
[JSP] 회원 기능 (2)  (0) 2024.10.07
[JSP] 회원 기능 (1)  (0) 2024.10.05
[JSP] Login Session  (1) 2024.10.05
[JSP] request & response  (2) 2024.10.05