예제 : 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일때의 조건문이 실행되게 한다