입력 데이터 여러 개를 1억개를 선언하려 한다.

이 input태그에 대한 이름을 1억개 각각을 지정할 셈인가?

Untitled

input태그를 여러 개 선언하면 배열로 가게 된다.

대신 서블릿에서는 request.getParameter가 아닌 request.getParameterValues(”name”)을 통해 배열로 req로부터 input을 받는다.

protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		**String[] num_ = request.getParameterValues("num");**
...

여기서 for문을 사용하여 input을 받아온 num_배열에 대한 각 원소에 action을 취해준다.

(여기선 총 합을 구하니 +=연산을 써준다)

주의해야할 점은 for문 안에서 선언을 해주면 선언을 여러번 해주는 것이 아니라 for문 안에서 지역변수 한 번만 선언한 뒤, action을 취해주는 것이다. 오히려 좋아

@WebServlet("/add")
public class Add2 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=UTF-8");
		String[] num_ = request.getParameterValues("num");

		int result = 0;
		
		for(int i=0;i<num_.length;i++) {
			int num = Integer.parseInt(num_[i]);
			result+=num;
		}
		
		response.getWriter().printf("result is %d\\n", result);
	}
}