JSP
[JSP] request를 이용한 상품 구매 내역
NamGH
2023. 9. 25. 17:12
예제 : request를 이용한 상품 구매 내역
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <style type="text/css"> span{ float:left; display:block; width:150px; color:red; } </style> <script src = "../js/jquery.js" type="text/javascript"></script> <script type="text/javascript"> $(function (){ $('INPUT[name = id]').focus(); }) ; function check(){ if($('INPUT[name = id]').val() == ""){ alert('아이디를 입력하세요'); $('INPUT[name = id]').focus(); return false; } if($('INPUT[name = pw]').val() == ""){ alert('비번을 입력하세요'); $('INPUT[name = pw]').focus(); return false; } if($('INPUT[name = product]:checked').length < 1){ alert('구매상품을 선택하세요'); $('INPUT[name = product]').focus(); return false; } if($('SELECT[name = time]:checked').val == ""){ alert('배송시간을 선택하세요'); $('SELECT[name = time]').focus(); return false; } if($('INPUT[name = approve]:checked').length < 1){ alert('결제방법을 선택하세요'); $('INPUT[name = approve]').focus(); return false; } } </script> <body> <h2> 상품 구매 내역 </h2> <FORM name="myform" METHOD="post" ACTION="Ex05_result남경현.jsp"> <span>아이디 :</span> <INPUT TYPE="text" NAME="id"><br> <span>비번 :</span> <INPUT TYPE="text" NAME="pw"><br> <p> <span>구매상품:</span> <input type="checkbox" name="product" value="식품">식품 <input type="checkbox" name="product" value="의류">의류 <input type="checkbox" name="product" value="도서">도서 <input type="checkbox" name="product" value="가구">가구 <p> <span>배송시간 :</span> <SELECT NAME="time"> <OPTION VALUE="선택">선택</OPTION> <OPTION VALUE="9시~11시">9시~11시</OPTION> <OPTION VALUE="11시~1시">11시~1시</OPTION> <OPTION VALUE="1시~5시">1시~5시</OPTION> <OPTION VALUE="5시~9시">5시~9시</OPTION> </SELECT> <p> <span>결제방법:</span> 카드 <INPUT TYPE="radio" NAME="approve" VALUE="카드"> 핸드폰 <INPUT TYPE="radio" NAME="approve" VALUE="핸드폰"> <p> <span>결제 동의합니다. </span> <INPUT TYPE="checkbox" NAME="agree" id="agree"> <!-- value없으면 on이넘어옴 --> <p> <INPUT TYPE="submit" value="보내기" onclick="return check()"> </FORM> </body> </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" import = "java.util.*"%> <% request.setCharacterEncoding("UTF-8"); %> <!-- request객체에는 요청 정보가 담긴다 --> <style> table{ text-align: center; width: 300; height: 100; } </style> <% Enumeration<String> names = request.getParameterNames(); %> <table border = "1" style="margin-top: 100px"> <% String str = null; boolean flag = false; while(names.hasMoreElements()){ str = names.nextElement(); if(str.equals("agree")){ flag = true; } String[] values = request.getParameterValues(str); for(int i = 0; i < values.length; i++){ out.print("<tr><td>" + str + "</td><td>"); if(values[i].equals("on")){ out.print("동의함"); }else{ out.print(values[i] + " "); } } out.print("</td></tr>"); } if(flag == false){ out.print("<tr>"); out.print("<td>agree</td>"); out.print("<td>동의안함</td>"); out.print("</tr>"); } %> </table>
실행결과
코드설명
유효성 검사를 한후 names의 객체를 한개한개씩 즉 id pw를 가져오고 정보를 많이 가져올수가 있으니깐 getParameter대신 getParameterValues를사용해 배열을 이용하고 동의안함이라는 정보를 가져오기 위해 flag에 false라는 초기값에 false로 넣어 agree에 체크를 안했을때 flag false가 되기때문에 false일때의 조건문이 실행되게 한다