티스토리 뷰
반응형
두 개의 값을 입력받아서 더하는 프로그램을 만든 적이 있다.
이번에는 여러 개의 값을 받아서 만들어보도록 하자!
자~ 이렇게 만들어서 전달하면 될까? 혹시 10개가 되면 10개를 모두 이런 식으로 수정해야 하나? 그리고 서블릿에서는 이 전달받는 값들을 모두 수정해줘야 할까? 이번에 그렇게 하지 않고 해결하는 방법에 대해서 알아보겠다.
동일한 name속성(같은 키워드)으로 값을 전달할 경우 값이 중복되는 것이 아니라 배열로 전달하게 되어있다!
<!-- add2.html -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="add2" method="post">
<div>
<label>숫자만 입력하세요</label>
</div>
<div><input type="text" name="num"/></div>
<div><input type="text" name="num"/></div>
<div><input type="text" name="num"/></div>
<div><input type="text" name="num"/></div>
<div><input type="text" name="num"/></div>
<div>
<input type="submit" value="더하기" />
</div>
<label>결과?</label>
</form>
</body>
</html>
모든 name을 num으로 통일! 그러면 서블릿에서는 어떻게 받아야 할까?
하나씩 차례로 받아서 배열에 저장하면 된다!
//Add2.java
package com.newlecture.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 request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
/* html로부터 num을 getParmeterValues로 배열로 전달 받아서 num_에 배열로 저장한다 */
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);
}
}
배열로 저장하기 위해서 String []을 선언
requestParameterValues: 배열을 읽어오는 함수
num=1&num=2&num=3&num=4&num=5로 전달되는 것을 볼 수 있다.
그리고 결과값은 15로 정상적으로 출력된다.
반복적인 값들을 전달할 때에는 이렇게 배열을 이용해서 전달하면 조금 더 간결한 코드를 만들 수 있다.
반응형
'Servlet JSP' 카테고리의 다른 글
상태유지 Application 이용 (0) | 2021.04.23 |
---|---|
상태 유지의 필요성? (0) | 2021.04.23 |
여러 개의 Submit버튼 사용!(feat. 개발자도구를 통한 분석) (0) | 2021.04.23 |
JSP 연습문제 더하기 웹 프로그램 (0) | 2021.04.23 |
서블릿 필터 Servlet Filter (0) | 2021.04.22 |
댓글
공지사항