반응형
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
	table td {border : 1px solid black; padding : 5px}
</style>
<title>Insert title here</title>
</head>
<body>
	<div>
		<H2> request 테스트 폼</H2>
		<HR>
		<form name = form1 method = post action = "request_result.jsp">
			<table>
				<tr>
					<td>이름</td>
					<td><input type = text size = 10 name = username></td>
				</tr>
				<tr>
					<td>직업</td>
					<td>
					<select name = job>
						<option selected> 무직</option>
						<option>회사원</option>
						<option>전문직</option>
					</select>
					</td>
				</tr>
				<tr>
					<td> 지역  </td>
				  	<td> 
				  		<input type = "radio" name ="local" value = "서울"> 서울
				  		<input type = "radio" name ="local" value = "인천"> 인천 <br> 
				  	</td>
				</tr>
				<tr>
					<td>관심분야</td>
					<td>
						<input type =checkbox name = favorite value ="정치">정치
						<input type =checkbox name = favorite value ="사회">사회
						<input type =checkbox name = favorite value ="정보통신">정보통신
					</td>
				</tr>
				<tr>
					<td colspan = 2 >
						<input type = submit value = "확인"><input type = reset value = "취소">
					</td>
				</tr>
			</table>
		</form>
	</div>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<% request.setCharacterEncoding("UTF-8"); %> 
<%-- 내장 객체(특별한 상황에 쓰이는)이기 때문에 객체 생성 없이 그냥 메소드 사용 가능 --%>
<%-- request된 것들이 한글이라면 받을 때 문제가 안 생기도록 utf-8로 설정 --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align = "center">
	<H2>request 테스트 결과 - 1</H2>
	<HR>
	
	<table border = 1 cellspacing ="1" cellpadding = "5">
		<tr>
			<td>이름</td>
			<td><%=request.getParameter("username") %>
		</tr>
		<tr>
			<td>직업</td>
			<td><%= request.getParameter("job") %></td>
		</tr>
		<tr>
			<td>지역</td>
			<td>
			<%
				String temp[] = request.getParameterValues("local");
				out.println(temp[0]);
			%></td>
		</tr>
		<tr>
			<td>관심분야</td>
			<td>
				<%
					String favorites[] = request.getParameterValues("favorite");
					//getParameterValues 문자열을 반환
				
					for (int i = 0 ; i < favorites.length; i++){
						out.println(favorites[i]+"<BR>");
					}
				%>
			</td>
		</tr>
	</table>
	<HR>
	<H2> request 테스트 결과 - 2 </H2>
	<table border = 0 >
		<tr> 
			<td>
				1. 클라이언트 IP 주소 : <%= request.getRemoteAddr() %> <BR> <%-- IP주소 --%>
				2. 요청 메서드 : <%= request.getMethod() %> <BR> <%-- 어떤 방식으로 보내는지 Post get --%>
				<% Cookie cookie[] = request.getCookies(); %>
				3. <%= cookie[0].getName() %>에 설정된 쿠키값 : <%= cookie[0].getValue() %><BR>
				4. 프로토콜 : <%= request.getProtocol() %>
			</td>
		</tr>
	</table>
</div>
</body>
</html>

<form name = form1 method = post action = "request_result.jsp">
... <input type = submit value = "확인">

 

form 태그와 input태그 type이 submit을 이용해 form태그 안에 정보를 보낼 수 있습니다.

form 태그에 methodpost방식으로 보낼지 get방식으로 보낼지 정할 수 있습니다. 

post방식과 get방식은 따로 포스팅 했습니다.

action은 어디 페이지로 연결할지에 대해서 적는 것입니다.

확인 버튼을 누르면 request_result.jsp페이지로 정보와 같이 넘어가게 되는 것이죠

 

주의할 게 있는데 post방식으로 보냈을 때 넘어가는 페이지에 이러한 걸 적어야합니다.

<% request.setCharacterEncoding("UTF-8"); %> 

그래야 한글이 깨지지 않고 넘어갑니다.

 

그러면 어떤게 어떤 정보인지 어떻게 알 수 있을까요?

그건 name을 통해 구분이 가능합니다.

<input type = text size = 10 name = username>

여기에서 보면 text를 적는 곳에는 username이라는 곳에 값이 저장되어 넘어간다고 생각하면 됩니다.

 

request.getParameter("name명")

그러면 action에 연결된 페이지에서 request.getParameter("username") 이런식으로 받을 수 있습니다.

 

<input type = "radio" name ="local" value = "서울"> 서울
<input type = "radio" name ="local" value = "인천"> 인천 <br>

라디오버튼에 문제가 생기는데 어떤 라디오버튼이 눌렸는지 알아야 request.getParameter로 가져올 수 있는데

어떤 버튼을 누를지는 선택이니까 이 같은 경우는 name을 똑같이 정하고 value라는 걸 설정

local에 "서울" 이라는 값 또는 "인천"이라는 값이 들어간 겁니다.

 

<input type =checkbox name = favorite value ="정치">정치
<input type =checkbox name = favorite value ="사회">사회
<input type =checkbox name = favorite value ="정보통신">정보통신

체크박스의 경우는 여러개의 값이 들어갈 수 있습니다.

그래서 name이 같은 경우는 배열로 값이 들어가게 되는 것이죠

 

<%
	String favorites[] = request.getParameterValues("favorite");
	//getParameterValues 문자열을 반환
				
	for (int i = 0 ; i < favorites.length; i++){
		out.println(favorites[i]+"<BR>");
    }
 %>

getParameterValues("name명")

이용해 배열로 받고 출력할 때는 인덱스로 접근해서 출력하면 됩니다.

 

반응형