💡요청받은 request 객체에 저장된 폼 파라미터 데이터를 가져오는 방법
// 1. request.getParameter("파라미터명"); // 단일 항목 데이터 가져오기(String 타입 리턴) // 2. request.getParameterValues("파라미터명"); // 복수 항목 파라미터 가져오기(String[] 타입 리턴)
💡POST 방식으로 파라미터가 전달될 경우 한글 처리
- 반드시 응답페이지(데이터를 실제로 가져와서 사용하는 곳)에서 설정
- request 객체의 setCharacterEncoding() 메서드를 호출하여 "UTF-8" 지정
: request.setCharacterEncoding("UTF-8");- 단, 반드시 파라미터값 가져오는 코드(request.getParameter() 등)보다 먼저 수행해야함
✍️ 전달받은 파라미터가 존재하지 않을 경우(지정한 이름이 없을 경우) null 값이 리턴되고, 파라미터는 있으나 데이터가 없는 경우 널스트링("") 이 리턴됨
// 1. 파라미터 중 파라미터명(name 속성값)이 "name" 인 값 가져와서 String 타입 strName 에 저장
String strName = request.getParameter("name");
// 스크립틀릿 내에서 웹브라우저에 데이터 출력할 경우 out.print() 또는 out.println() 사용
// out.println("이름 : " + strName + "<br>");
// 2. 파라미터 중 파라미터명(name 속성값)이 "age" 인 값 가져와서 String 타입 strAge 에 저장
String strAge = request.getParameter("age");
// 3. 파라미터 중 파라미터명(name 속성값)이 "gender" 인 값 가져와서 String 타입 strGender 에 저장
String strGender = request.getParameter("gender");
// 4. 복수개의 동일한 이름의 파라미터를 String[] 타입 배열로 리턴받아 처리
String[] strHobbies = request.getParameterValues("hobby");
🖥️출력
<table border="1">
<tr>
<td>이름</td>
<td><%=strName %></td>
</tr>
<tr>
<td>나이</td>
<td><%=strAge %></td>
</tr>
<tr>
<td>성별</td>
<td><%=strGender %></td>
</tr>
<tr>
<td>취미</td>
<td>
<%
// 체크 항목이 하나도 없을 경우 "없음" 을 출력하고, 하나라도 있을 경우에만 반복
if(strHobbies == null) { // 체크항목이 하나도 없을 경우
out.println("없음");
} else { // 체크항목이 하나라도 있을 경우
// 반복문을 사용하여 배열 내의 요소 차례대로 접근
for(int i = 0; i < strHobbies.length; i++) {
out.println(strHobbies[i] + " ");
}
}
%>
</td>
</tr>
</table>
✍️체크박스 항목을 하나도 체크하지 않을 경우 strHobbies 변수에 null 저장되고, strHobbies.length 를 통해 접근할 경우 NullPointerException 이라는 예외(오류) 발생