프로그래밍 언어/자바 웹

getParameterNames() 메서드를 이용한 요청 관리

· 코딩마이데이

전송된 데이터가 많아 일일이 name의 값을 기억하기 힘들 때는 getParameterNames() 메소드를 이용하면 편리합니다.

1. sec01.ex01 패키지에 InputServlet2 클래스를 생성합니다.

실습 파일 위치

 

2. input.html을 다음과 같이 수정합니다.

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>여러 가지 input 타입 표시창</title>
</head>
<body>
<form name="frmInput" method="get" action="input2">
   아이디  :<input type="text" name="user_id"><br>
   비밀번호:<input type="password" name="user_pw"><br>
   <input type="checkbox" name="subject" value="java" checked >자바
   <input type="checkbox" name="subject" value="C언어">C언어
   <input type="checkbox" name="subject" value="JSP">JSP
   <input type="checkbox" name="subject" value="안드로이드">안드로이드 
   <br><br>
   <input type="submit" value="전송">   
   <input type="reset" value="초기화">
  </form>
</body>
</html>

 

3. inputServlet2 클래스를 다음과 같이 작성합니다. 전송되는 데이터가 많은 경우에는 getParameterName()를 이용해 name 속성만 따로 구할 수 있습니다.

package sec01.ex01;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Enumeration;

@WebServlet("/input2")
public class InputServlet2 extends HttpServlet {
	public void init() throws ServletException
	{
		System.out.println("init 메소드 호출");
	}

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("urf-8");
		Enumeration enu = request.getParameterNames();
		while (enu.hasMoreElements())
		{
			String name = (String) enu.nextElement();
			String[] values = request.getParameterValues(name);
			for (String value : values)
			{
				System.out.println("name=" + name + ",value=" + value);
			}
		}
	}
	
	public void destroy() {
		System.out.println("destroy 메소드 호출");
	}
}

 

4. 브라우저에서 http://localhost:8090/pro06/input.html로 요청하고 값을 입력한 후 전송을 클릭합니다. getParameterNames()를 이용해 전송된 name과 값이 모두 출력되는 것을 확인할 수 있습니다.

값 입력 후 서블릿으로 전송된 결과