본문 바로가기
study/Jsp

[Jsp] 7. 전송된 파라미터 값 출력 (submit, method="post/get", String request.getParamter("파라미터이름"), String[] request.getParamterValues("파라미터이름"), Enumeration request.getParameterNames())

by 금이패런츠 2022. 4. 6.
728x90
반응형
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- src/main/webapp/ch03/requestForm.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
	submit 버튼 클릭 : 
		1. submit 버튼이 속한 form 객체에 onsubmit 이벤트 발생. => 구현 안되었으므로 무시됨.
		2. form 객체 action 속성에 등록된 페이지로 서버에 요청.
			=> form 객체의 하위의 입력태그들의 값들을 가지고 요청됨. 
			
	파라미터 : <input type="..." name="파라미터 이름"> ...
			String request.getParameter("파라미터 이름") : 파라미터에 입력(선택)된 값을 한개만 리턴
			
	method="post/get"
		get : 전송 될 파라미터들이 url을 통해서 전송. 보안에 취약.
		post : 전송 될 파라미터들이 http 전문(전달되는 문서)의 body 부분으로 전송. url 부분에 보이지 않음.
			   한글 처리가 안됨. ISO8859 기본 인코딩됨.
			   	=> 인코딩 설정이 필요. request.setCharacterEncoding("UTF-8")
 --%>
<h2>request 내장 객체 : 클라이언트의 요청 정보를 저장하고 있는 객체</h2>
<form action="request1.jsp" method="post">
	이름 : <input type="text" name="name"><br>
	나이 : <input type="text" name="age"><br>
	성별 : <input type="radio" name="gender" value="1">남
		  <input type="radio" name="gender" value="2">여<br>
	취미 : <input type="checkbox" name="hobby" value="여행">여행
		  <input type="checkbox" name="hobby" value="야구">야구
		  <input type="checkbox" name="hobby" value="축구">축구
		  <input type="checkbox" name="hobby" value="요리">요리
		  <input type="checkbox" name="hobby" value="독서">독서<br>
	출생년도 : <select name="year">
	<%for (int i=1988; i<2001; i++) { %>
	 <option><%=i %></option>
	 <%} %> </select>
	 <input type="submit" value="전송">
</form>
</body>
</html>

<%@page import="java.util.Enumeration"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%-- src/main/webapp/ch03/request1.jsp --%>
<%--
	String request.getParamter("파라미터이름") : 파라미터이름에 해당하는 파라미터값 한개 리턴
	String[] request.getParamterValues("파라미터이름") : 파라미터이름에 해당하는 파라미터값 여러개를 배열로 리턴
	Enumeration request.getParameterNames() : 요청객체에 존재한느 모든 파라미터 이름을 리턴
 --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>전송된 파라미터 값 출력</title>
</head>
<body>
<%
	request.setCharacterEncoding("UTF-8"); //파라미터값을 인코딩. 한글인식을 위한 설정
	String name = request.getParameter("name"); //abc
	String age = request.getParameter("age"); //20
	String gender = request.getParameter("gender"); //1
	String hobby = request.getParameter("hobby"); //여행
	String year = request.getParameter("year"); //1994
%>
이름 : <%=name %><br>
나이 : <%=age %><br>
성별 : <%=gender %><br>
취미 : <%=hobby %><br>
출생년도 : <%=year %><br>

<hr>
<h3>모든 취미 정보 조회하기</h3>
<%
	String[] hobbies = request.getParameterValues("hobby");
	for(String h : hobbies) {
%>
 <%=h %>&nbsp;&nbsp;
<%} %>

<hr>
<h3>모든 파라미터 정보 조회하기</h3>
<table><tr><td>파라미터이름</td><td>파라미터값</td></tr>
<%
	//Enumeration : 반복자. Iterator의 구버전
	Enumeration e = request.getParameterNames(); //파라미터이름 목록
	while(e.hasMoreElements()) {
		String pname = (String)e.nextElement(); //파라미터이름 한개
		String[] values = request.getParameterValues(pname); //파라미터의 값들 리턴
%>
<tr><td><%=pname %></td>
<td>
<%for (String v : values) {%>
<%=v %>&nbsp;&nbsp;
<%} //for구문의 끝 %>
</td></tr>
<% } //while구문의 끝 %>
</table>
</body>
</html>
728x90
반응형