JSP/STUDY

[JSP] JSP 실습예제 - 5

코맹 2024. 9. 2. 11:37

 

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