Servlet(5) getParameterValues, 배열,
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>sample05</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>sample</servlet-name>
<servlet-class>sample05.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>sample</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
==========================================================
package sample05;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html; charset=utf-8");
System.out.println("get 전송방식 입니다");
PrintWriter out = resp.getWriter();
String name = req.getParameter("name");
System.out.println(name);
String age = req.getParameter("age");
// 숫자로 받고 싶을때
int iAge = Integer.parseInt(age.trim());
// 빈칸이 있을 수 도 있으니 trim(공백) 으로 잘라서
문자열을 가져와서 문자열을 숫자로 바꿈
System.out.println("age = " + iAge);
// food 선택한게 여러가지면 배열로 받아야된다
String array[] = req.getParameterValues("food"); // String 배열
if (array != null) { //값이 있을 때
for (int i = 0; i < array.length; i++) {
System.out.println("좋아하는 과일은 ? = " + array[i]);
}
} else { //값이 없을 때
System.out.println("과일을 선택하지 않았습니다");
}
out.println("<html>");
out.println("<head>");
out.println("<title>Hello</title>");
out.println("</head>");
out.println("<body>");
out.println("<p>이름 :" + name + "</p>");
out.println("<p>나이 :" + age + "</p>");
if (array != null) {
for (int i = 0; i < array.length; i++) { // 값이 들어온 만큼 길이가 잡히고 for 으로 값들이 나옴
out.println("<p>좋아하는 과일 : " + array[i] + "</p>");
}
}else {
out.println("<p>어떤 과일도 선택하지 않았습니다</p>");
}
out.println("</body>");
out.println("</html>");
out.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
==============================================================================
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="hello" method="get">
<table>
<tr>
<td>이름</td>
<td><input type="text" size="20" name="name" value=""> // name 을 통해 값을 넘겨줌
</td>
</tr>
<tr>
<td>나이</td>
<td><input type="text" size="5" name="age" value=""></td> //name 을 통해 값을 넘겨
</tr>
<tr>
<td>좋아하는 과일은?</td>
<td><select name="food" size="3" multiple="multiple"> //multiple 여러개를 선택 가능
<option value="apple">사과</option>
<option value="melon">멜론</option>
<option value="grape">포도</option>
</select></td>
</tr>
</table>
<input type="submit" value="전송">
</form>
</body>
</html>