도서구매정보입력창
bookform.html과 book.jsp와 amounterror.jsp와 bookcommon.jsp이다.
★ 도서구매정보입력
- 도서선택: 체크박스 (오라클, 자바, jquery, 서블릿, 스프링)
- 수량: text(5개)
- 주소: text(1개)
- 연락처1: select (010, 011,016)
text (1개, placeholder='나머지번호입력')
- 입력완료버튼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <body> <form action="book.jsp"> <h1> 도서구매 정보 입력</h1> 도서선택: <br> <input type=checkbox name= book value=오라클>오라클 <input type=checkbox name= book value=자바>자바 <input type=checkbox name= book value=jquery>jquery <input type=checkbox name= book value=서블릿>서블릿 <input type=checkbox name= book value=스프링>스프링<br> 수량: <br> <input type=text name=qty> <input type=text name=qty> <input type=text name=qty> <input type=text name=qty> <input type=text name=qty><br> 주소: <br> <input type=text name=addr><br> 연락처: <br> <select name=phone1> <option> 010 </option> <option> 011 </option> <option> 016 </option> </select><br> <input type=text name=phone2 placeholder=나머지번호입력><br> <input type=submit value=입력버튼> </form> </body> |
★ 선택되지 않은 도서의 수량은 0으로 처리한다.
- 수량에 음수가 입력되면 amounterror.jsp 파일로 예외를 전달합니다. :
"수량은 음수가 불가합니다" 예외메시지로 전달
if(수량 < 0){
throw new Exception("수량은 음수가 불가합니다 ");
}
<%=exception%>
1 2 3 4 5 6 7 8 9 10 11 12 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <%=exception.getMessage() %> </body> </html> |
★ 모든 jsp 파일 공통 가정: bookcommon.jsp
온라인 서점은 24시간 운영됩니다.
문의는 book@online.com 으로 주시면 됩니다.
1 2 3 4 5 6 7 8 9 | <body> <p style= "border:solid 2px red;text-align:center"> 온라인 서점은 24시간 운영됩니다.<br> 문의는 book@online.com 으로 주시면 됩니다. </p> </body> |
★ 배열또는 hashMap이용할 것
오라클 1권 15000원
자바 1권 20000원
jquery 1권 15000원
서블릿 1권 17000원
스프링 1권 25000원
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" errorPage="amounterror.jsp"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% String booklist [] = {"오라클", "자바", "jquery","서블릿","스프링" }; int pricelist[]= {15000, 20000, 15000, 17000, 25000}; //HashMap<String, Integer> map //= new HashMap<String, Integer>(); //map.push("오라클", 15000); //4번 //map.get("오라클") //book 이름 , checkbox 선택된 것만 jsp 전송 String[] books = request.getParameterValues("book"); //balance 이름 가진 것 모두 : 5 String[] balances = request.getParameterValues("balance"); //수량 입력x : 0 //수량 음수 : amounterror.jsp 예외처리전담 for(int i = 0; i < balances.length; i++){ if(balances[i].equals("")) balances[i] = "0"; if(Integer.parseInt(balances[i]) < 0) throw new Exception ("수량은 음수가 불가합니다"); } //books 사용자선택 도서가 //booklist 전체책 목록 존재하는지 판단 //pricelist index : 가격 int pricePerBook = 0; int priceTotalBooks = 0; for(int i= 0; i< books.length; i++ ){ for(int j = 0; j <booklist.length; j++){ if(booklist[j].equals(books[i])){ pricePerBook = pricelist[j] * Integer.parseInt(balances[j]); out.println (books[i] + ":" + balances[j] + "권 선택:" + pricePerBook +"원<br>" ); priceTotalBooks += pricePerBook; break; } } } out.println ("<h1>총가격:"+ priceTotalBooks + "</h1>"); String address = request.getParameter("address"); String phone1 = request.getParameter("phone1"); String phone2 = request.getParameter("phone2"); String phone = phone1 + "-" + phone2; %> 배송지:<%=address %><br> 연락처:<%=phone %><br> <%@ include file="bookcommon.jsp" %> </body> </html> |
★★★ 다음과 같이 출력 ★★★
<출력>
자바 : 3권 : 60000원
jquery : 2권 : 30000원
총 지불 금액 : xxxx원
배송지 : 주소
연락처 : 010-xxx-xxxx
확인하세요.
온라인 서점은 24시간 운영됩니다.
문의는 book@online.com 으로 주시면 됩니다.
'WEB 기초 > Jsp' 카테고리의 다른 글
[JSP] 16. 세션(Session) 총 정리 (0) | 2018.04.23 |
---|---|
[JSP] 15. 쿠키(cookie) 총정리 (0) | 2018.04.23 |
[JSP] 13. 표준 액션 태그 (java Bean & java Property) (0) | 2018.04.23 |
[JSP] 12. forward 이용하기 (include 대신해서) (0) | 2018.04.23 |
[JSP] 11. application 객체 (0) | 2018.04.23 |