본문 바로가기
서블릿 JSP

입력 데이터 배열로 받기

by 영카이브 2024. 2. 21.
  • 기존 코드
public class Add extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.setCharacterEncoding("UTF-8");
		resp.setContentType("text/html; charset=UTF-8");
		PrintWriter out = resp.getWriter(); 
		String x_ = req.getParameter("x"); 
		String y_ = req.getParameter("y");
		int x=0; 
		int y=0; 
		if(x_!=null && y_!=null && !x_.equals("") && !y_.equals("")) {
			x=Integer.parseInt(x_); 
			y=Integer.parseInt(y_); 
		}
		out.println("계산 결과는 : " + (x+y));
	}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div>
		<form action="add" method="post">
			<div>
				<label>x : </label>
				<input type="text" name="x" />
			</div>
			<div>
				<label>y : </label>
				<input type="text" name="y" />
			</div>
			<div>
				<input type="submit" value="계산" />
			</div>
			<div>
				결과 : 0
			</div>
		</form>
	</div>
</body>
</html>

 

<input type="text" name="x" /> 이라고 설정한 개수 만큼 String x_ = req.getParameter("x"); 을 설정해주어야 한다. 

그럴필요 없이 name을 똑같이 num 으로 통일한다면 배열로 보내지게 된다. 

 

수정 코드 

package com.servlet.web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet("/add2")
public class Add2 extends HttpServlet{
	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		resp.setCharacterEncoding("UTF-8");
		resp.setContentType("text/html; charset=UTF-8");
		PrintWriter out = resp.getWriter(); 
		String[] num_ = req.getParameterValues("num"); 
		String y_ = req.getParameter("y");
		int x=0; 
		int y=0; 
		int result=0;
		for( int i=0; i<num_.length; i++ ) {
			int num = Integer.parseInt(num_[i]); 
			result+=num; 
		}
		out.println("계산 결과는 : " + result);
	}
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div>
		<form action="add2" method="post">
			<div>
				<input type="text" name="num" />
				<input type="text" name="num" />
				<input type="text" name="num" />
				<input type="text" name="num" />
			</div>
			<div>
				<input type="submit" value="덧셈" />
			</div>
			<div>
				결과 : 0
			</div>
		</form>
	</div>
</body>
</html>

 

 

참고 자료 출처 : https://www.youtube.com/watch?v=EmOYOPhjhbo&list=PLq8wAnVUcTFVOtENMsujSgtv2TOsMy8zd&index=25

'서블릿 JSP' 카테고리의 다른 글

Session & Cookie  (0) 2024.02.23
Application 저장소  (0) 2024.02.23
GET요청 & POST요청 & 서블릿 필터  (0) 2024.02.20
Servlet 출력 형식의 이해  (0) 2024.02.20
Annotation을 이용한 Servlet과 URL 매핑  (0) 2024.02.20