K 개발자
JSP BookMarket 만들기 - 10 본문
이전 글
JSP BookMarket 만들기 - 1
JSP BookMarket 만들기 - 2
JSP BookMarket 만들기 - 3
JSP BookMarket 만들기 - 4
JSP BookMarket 만들기 - 5
JSP BookMarket 만들기 - 6
JSP BookMarket 만들기 - 7
JSP BookMarket 만들기 - 8
JSP BookMarket 만들기 - 9
실행 환경
자바 개발 환경 : jdk-15.0.2
웹 서버 환경 : Apache Tomcat v9.0
통합 개발 환경 : Eclipse IDE for Enterprise Java Developers
예외 처리 페이지 만들기
page 디렉티브 태그에 errorPage 속성을 이용하여 오류 페이지를 호출하도록 작성한다.
- WebContent 폴더에 오류 페이지 exceptionNoBookId.jsp 파일을 생성하고 오류 메시지를 출력하도록 작성한다.
- WebContent 폴더의 도서 상세 보기 페이지 book.jsp 파일에 오류가 발생했을 때 오류 페이지를 호출하도록 작성한다.
<%-- exceptionNoBookId.jsp --%>
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<link rel="stylesheet" href="./resources/css/bootstrap.min.css" />
<title>도서 아이디 오류</title>
</head>
<body>
<jsp:include page="menu.jsp" />
<div class="jumbotron">
<div class="container">
<h2 class="alert alert-danger">해당 도서가 존재하지 않습니다.</h2>
</div>
</div>
<div class="container">
<p><%=request.getRequestURL()%>?<%=request.getQueryString()%>
<p><a href="books.jsp" class="btn btn-secondary">도서 목록 »</a>
</div>
</body>
</html>
<%-- book.jsp --%>
<%@ page contentType="text/html; charset=utf-8"%>
<%@ page import="dto.Book"%>
<%@ page import="dao.BookRepository"%>
<%@ page errorPage="exceptionNoBookId.jsp"%>
<html>
<head>
<link rel="stylesheet" href="./resources/css/bootstrap.min.css">
<title>도서 상세 정보</title>
</head>
<body>
<jsp:include page="menu.jsp" />
<div class="jumbotron">
<div class="container">
<h1 class="display-4">도서 정보</h1>
</div>
</div>
<%
String id = request.getParameter("id");
BookRepository dao = BookRepository.getInstance();
Book book = dao.getBookById(id);
%>
<div class="container">
<div class="row">
<div class="col-md-4">
<img src="c:/upload/<%=book.getFilename()%>" style="width: 100%" />
</div>
<div class="col-md-8">
<h4><b>[<%=book.getCategory()%>]<%=book.getName()%></b></h4>
<p><%=book.getDescription()%>
<p><b>도서코드 : </b><span class="badge badge-danger"> <%=book.getBookId()%></span>
<p><b>저자</b> : <%=book.getAuthor()%>
<p><b>출판사</b> : <%=book.getPublisher()%>
<p><b>출판일</b> : <%=book.getReleaseDate()%>
<p><b>총 페이지수</b> : <%=book.getTotalPages()%>
<p><b>재고수</b> : <%=book.getUnitsInStock()%>
<h4><%=book.getUnitPrice()%>원</h4>
<p><a href="#" class="btn btn-info">도서주문 »</a>
<a href="./books.jsp" class="btn btn-secondary">도서목록 »</a>
</div>
</div>
<hr>
</div>
<jsp:include page="footer.jsp" />
</body>
</html>
web.xml 파일에 오류 코드로 오류 페이지를 호출하도록 작성한다.
- WebContent/WEB-INF 폴더의 web.xml 파일에 오류가 발생했을 때 오류 상태와 오류 페이지를 출력하도록 작성한다.
- WebContent 폴더에 오류 페이지 exceptionNoPage.jsp 파일을 생성하고 오류 메시지를 출력하도록 작성한다.
<?xml version="1.0" encoding="UTF-8"?>
<!-- web.xml -->
<web-app>
<security-role>
<description></description>
<role-name>admin</role-name>
</security-role>
<security-constraint>
<display-name>BookMarket Security</display-name>
<web-resource-collection>
<web-resource-name>BookMarket</web-resource-name>
<description></description>
<url-pattern>/addBook.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<description>권한 관리자명</description>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login_failed.jsp</form-error-page>
</form-login-config>
</login-config>
<error-page>
<error-code>404</error-code>
<location>/exceptionNoPage.jsp</location>
</error-page>
</web-app>
<%-- exceptionNoPage.jsp --%>
<%@ page contentType="text/html; charset=utf-8"%>
<html>
<head>
<link rel="stylesheet" href="./resources/css/bootstrap.min.css" />
<title>페이지 오류</title>
</head>
<body>
<jsp:include page="menu.jsp" />
<div class="jumbotron">
<div class="container">
<h2 class="alert alert-danger">요청하신 페이지를 찾을 수 없습니다.</h2>
</div>
</div>
<div class="container">
<p><%=request.getRequestURL()%>
<p><a href="books.jsp" class="btn btn-secondary">도서 목록 »</a>
</div>
</body>
</html>
웹 브라우저에 'http://localhost:8080/BookMarket/book.jsp?id=ISBN0000' 또는 'http://localhost:8080/BookMarket/bookList.jsp'를 입력하여 실행 결과를 확인한다.
다음 글
JSP BookMarket 만들기 - 11
JSP BookMarket 만들기 - 12
JSP BookMarket 만들기 - 13
JSP BookMarket 만들기 - 마지막
'Web > JSP' 카테고리의 다른 글
JSP BookMarket 만들기 - 12 (0) | 2021.08.06 |
---|---|
JSP BookMarket 만들기 - 11 (0) | 2021.08.06 |
JSP BookMarket 만들기 - 9 (0) | 2021.08.06 |
JSP BookMarket 만들기 - 8 (0) | 2021.08.06 |
JSP BookMarket 만들기 - 7 (0) | 2021.08.06 |
Comments