HTML 폼과 요청 파라미터의 처리
웹 브라우저는 폼에 입력한 정보를 파라미터로 전송.
request 기본객체는 웹 브라우저가 전송한 파라미터를 읽어올 수 있는 메서드를 제공
메서드 |
리턴타입 |
설명 |
getParameter(String name) |
String |
이름이 name 인 파라미터의 값을 구한다. (존재하지 않을 경우 null 리턴) |
getParameterValues(String name) |
String[] |
이름이 name인 모든 파라미터의 값을 배열로 구한다. (존재하지 않을 경우 null 리턴) |
getParameterNames() |
java.util.Enumeration |
웹 브라우저가 전송한 파라미터의 이름을 구한다. |
getParameterMap() |
java.util.Map |
웹 브라우저가 전송한 파라미터의 맵을 구한다. 맵은 <파라미터 이름, 값> 쌍으로 구성된다. |
< -- makeTestForm.jsp : 폼에 입력한 값을 출력해주는 JSP -- >
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> 폼에 데이터를 입력한 후 '전송' 버튼을 클릭 <form action="viewParameter.jsp" method="post"> 이름 : <input type="text" name="name" size="10"/><br> 주소 : <input type="text" name="address" size="30"/><br> 좋아하는 동물: <input type="checkbox" name="pet" value="dog"/>강아지 <input type="checkbox" name="pet" value="cat"/>고양이 <input type="checkbox" name="pet" value="pig"/>돼지 <br> <input type="submit" value="전송"/> </form> </body> </html> | cs |
< -- makeTestForm.jsp : 출력 화면 -- >
- 전송 버튼을 클릭하면 웹 브라우저는 폼 :<form>에 입력한 데이터를 action="viewParameter.jsp"로 전송
* 전송한 데이터는 요청 파라미터로 전송되며, request 기본 객체의 메서드를 사용해 요청 파라미터를 읽어 올 수 있다.
< -- viewParameter.jsp : 폼에 입력한 데이터 JSP -- >
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 | <%@page import="java.util.Map"%> <%@page import="java.util.Enumeration"%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!-- 요청 파라미터의 캐릭터 인코딩을 utf-8로 지정 (한글을 올바르게 처리하기 위함) --> <% request.setCharacterEncoding("utf-8"); %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>요청 파라미터 출력</title> </head> <body> <!-- request.getParameter() 메서드를 사용하여 name 파라미터와 address 파라미터의 값을 출력 --> <b>request.getParameter() 메서드 사용</b><br> name 파라미터 = <%=request.getParameter("name") %><br> address 파라미터 = <%=request.getParameter("address") %><br> <!-- request.getParameterValues() 메서드는 String 배열(String[])을 리턴 --> <!-- 배열의 첫번쨰 원소를 사용할 떄에는 배열의 변수[0] 형태를 사용 (변수 values -> values[0], values[1] 형식으로 파라미터 값에 접근 ) --> <p> <b>request.getParameterValues() 메서드를 사용</b> <% String[] values = request.getParameterValues("pet"); if(values != null){ for(int i=0; i<values.length; i++){ %> <%= values[i] %> <% } } %> <!-- 파라미터의 이름을 출력 , 이 코드가 request.getParameterNames() 메서드를 사용하는 기본 형태이므로 기억--> <p> <b>request.getParameterNames() 메서드를 사용</b> <% Enumeration paramEnum = request.getParameterNames(); while(paramEnum.hasMoreElements()){ String name = (String)paramEnum.nextElement(); %> <%=name %> <% } %> <!-- request.getParameterMap() 은 자바의 Map 을 사용하여 파라미터 이름과 파라미터 값을 리턴, Map 에는 <파라미터 이름, 파라미터 값 배열> 이 쌍을 이루고 있다. --> <p> <b>request.getParameterMap() 메서드를 사용</b> <% Map parameMap = request.getParameterMap(); String[] nameParam = (String[])parameMap.get("name"); if(nameParam != null){ %> <%=nameParam[0] %> <%} %> </body> </html> | cs |
- request.getParameter() 메서드 : 오직 한개의 값만 읽어 올 수 있다.
- request.getParameterValues() 메서드 : 같은 이름으로 전송된 파라미터이 값들을 배열로 리턴 (name 이 pet이 파라미터의 값을 배열로 받음 = dog, cat)
- 체크박스와 라디오버튼의 경우 선택하지 않으면 파라미터 자체가 전송되지 않지만 텍스트입력과 같은 입력 요소들은 값을 입력하지 않더라도 빈 문자열("")이 파라미터의 값으로 전달된다.
< -- viewParameter.jsp : 출력 화면 -- >
'JSP' 카테고리의 다른 글
request 기본 객체 06_요청 헤더 정보의 처리 (0) | 2016.05.31 |
---|---|
request 기본 객체 05_톰캣에서 GET 방식 인코딩 처리 (0) | 2016.05.31 |
request 기본 객체 04_파라미터 값의 인코딩 처리 (0) | 2016.05.31 |
request 기본 객체 03_GET 방식 전송과 POST 방식 전송 (0) | 2016.05.31 |
request 기본 객체 01 (0) | 2016.05.28 |