[jsp, servlet] 같은 name 값이 여러 개 일 때, Servlet에서 파라미터로 받기

seulki·2022년 10월 6일
0

jsp

목록 보기
8/51
post-thumbnail
post-custom-banner

🎈 name="num"인 text상자 4개의 값을 모두 받아오기

  • HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="calc" method="post">
		<input type="text" name="num">
		<input type="text" name="num">
		<input type="text" name="num">
		<input type="text" name="num">
		<input type="submit" name="operator" value="덧셈">
	</form>
</body>
</html>



  • JAVA
package com.koit.web.servlet;

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("/calc")
public class Calc extends HttpServlet {
	@Override
	protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException {
		
		String[] paramNum = arg0.getParameterValues("num");
		int num = 0;
		
		int sum = 0;
		if(paramNum != null && !paramNum.equals("")) {
			for(int i = 0; i < paramNum.length; i++) {
				num = Integer.parseInt(paramNum[i]);
				sum += num;
			}
		}
		PrintWriter out = arg1.getWriter();
		out.println("합계 : " + sum);
	}
}
  • name="num"인 상자가 4개가 있고, 각각 입력한 값
    파라미터로 받아와서 연산을 해야한다.

  • 같은 name 값이 여러 개 일때는 배열로 받아온다.

  • 파라미터로 넘어올때는 문자열로 받아오니 String[ ]을 만들어준다.

  • 그리고 num값이 null이 아니거나 빈 문자열이 아니라면
    String으로 넘어온 값을 int형으로 바꿔준다.

  • 합계를 구해야하니, sum 변수에 for문으로 넘어온 값을 하나씩 합해준다.

  • 1 + 2 + 3 + 4의 요청을 보내고 합계가 정상적으로 출력된다.


profile
웹 개발자 공부 중
post-custom-banner

0개의 댓글