[JSP] JSP 실전
2024. 10. 5. 19:10ㆍJSP
이번엔 여러 페이지를 이용하여 사용자에게 데이터를 입력받고 데이터 삭제, 추가 등의 기능을 처리해 볼 거다.
간단한 도서관리 시스템을 구축하여 보자.
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 |