JSP and Servlet

Servlet(5) getParameterValues, 배열,

Jini0 2018. 8. 13. 14:40

<?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>