rentalForm.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Rental Form</title>
</head>
<body>
<h2>Rental Form</h2>
<form action="rentalBook" method="post">
<input type="text" name="bookId" placeholder="도서 아이디를 입력해주세요."><br>
<input type="number" name="rentalPeriod" placeholder="대여기간을 입력해주세요."><br>
<input type="submit" value="대여">
</form>
</body>
</html>
BookRentalServlet.java
package ex05;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/rentalBook")
public class BookRentalServlet extends HttpServlet{
private final static int MAX_RENTAL_PERIOD = 14;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String bookId = req.getParameter("bookId");
String rentalPeriodStr = req.getParameter("rentalPeriod");
int rentalPeriod = 0;
if(bookId == "" || rentalPeriodStr == "") {
bookId = "불편한 편의점";
try {
rentalPeriod = Integer.parseInt(rentalPeriodStr);
} catch (NumberFormatException e) {
rentalPeriod = 7;
}
}
if(rentalPeriod > MAX_RENTAL_PERIOD) {
req.setAttribute("errorMsg", "최대 대여기간을 초과하였습니다. 대여 기간은 최대 " + MAX_RENTAL_PERIOD + "일 입니다.");
req.getRequestDispatcher("/rentalFail.jsp").forward(req, resp);
} else {
req.setAttribute("bookId", bookId);
req.setAttribute("rentalPeriod", rentalPeriod);
req.getRequestDispatcher("/rentalResult.jsp").forward(req, resp);
}
}
}
- bookId, rentalPeriod 값을 받아서 예외처리를 해준 뒤 클라이언트로 다시 반환
대여 성공시
rentalResult.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Rental Result</title>
</head>
<body>
<h2>Rental Result</h2>
<p>도서 ${bookId}를 ${rentalPeriod}일 동안 대여되었습니다.</p>
</body>
</html>
대여기간 실패(초과)시
rentalFail.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Rental Fail</title>
</head>
<body>
<h2>대여 오류</h2>
<p>${errorMsg}</p>
</body>
</html>
'JSP > STUDY' 카테고리의 다른 글
[JSP] JSP 실습예제 - 4 (0) | 2024.08.30 |
---|---|
[JSP] JSP 실습예제 - 3 (0) | 2024.08.30 |
[JSP] JSP 실습예제 - 2 (0) | 2024.08.29 |
[JSP] JSP 실습예제 - 1 (0) | 2024.08.29 |
[JSP] request.getParameter() (0) | 2024.05.20 |