-
배열로 입력받기Servlet-JSP 2022. 1. 13. 15:45
**유튜브 뉴렉쳐님의 강의를 들으면서 공부하고 정리한 내용입니다.
평소에 이력서를 쓸 때에 자격증등을 입력 할 때 주어진 칸 말고 추가로 칸을 늘려서 입력해야하는 경우가 있다.
그럴경우에는 식별 name값의 이름을 따로따로 설정해주기 번거롭다.
이럴때 배열로 입력값을 받게 되면 식별 해주는 name값을 하나의 이름으로 지정하게 된다면 추가했을때 번거롭지 않게 사용이 가능하다.
앞에서 사용했던 add 파일을 가지고 수정을 해보도록하자.
우선 add.html 파일을 ctrl+c ctrl+v해서 add2 파일을 만들어준다.

action 값을 add2로 바꿔주고 기존에 각각 다르게 설정했던 name값을 같은 이름으로 동일하게 지정해준다.
그리고 두개의 칸을 추가해줘보자
이렇게 식별 name값을 같은 이름으로 지정 해 주면 배열로 인식하게 되고 서블릿파일에서 반복문을 사용해서 꺼내 쓸 수 있게 된다.
그럼 이제 서블릿파일을 수정해보자
우선 기존에 식별값 별로 따로 request 받았던 것을 하나만 받아오게 해 주면 되는데 배열로 받아 오게끔 수정을 해 주면 된다.
String[] num_ = request.getParameterValues("num"); //_을 붙이는 이름은 임시로 사용하기 위해 //동일한 이름이 여러개 올 때는 getParameterVlues로 int result = 0; // 그리고 기본값을 설정 해 준다. //그리고 반복문 작성 for(int i =0; i<num_.length; i++) { int num = Integer.parseInt(num_[i]); //문자열->정수로 형변환을 선언 해 준다. for문 안에서 연산이 아니라 선언이 아니기때문에 반복하기 전에 먼저 만들어져야 한번만 만들어지고 선언이 반복되는 일이 없다. 지역적으로만 쓰기 위해 for문안에 작성해주고 지역변수로 사용하는 것이다. result+=num; //[i]를 넣어줘서 그때그때 하나씩 바뀌게 될 것이다. } //result에 num값을 누적시켜준다. response.getWriter().printf(" 값 : %d\n", result);// 포멧팅 해서 출력 해준다.배열로 받아올때는 request.getParameter가 아니라request.getParameterValues()로 요청 해줘야 한다.

짜잔
그럼 이렇게 배열로 값을 받아 올 수 있게 된다.
'Servlet-JSP' 카테고리의 다른 글
Application객체와 서블릿Context (0) 2022.01.13 상태 유지의 필요성 application, session, cookie (0) 2022.01.13 서블릿 사용자로부터 값을 받아 계산해보기 (0) 2022.01.13 서블릿필터 ServletFilter (0) 2022.01.12 입력할 내용이 많은 경우는 POST 요청 (0) 2022.01.08