아래 코드를 작성한 후, http://localhost:8090/ServletFormTest/input.html에 접속한 후, 양식에 입력한다. 결과값은 http://localhost:8090/ServletFormTest/inputForm에서 확인할 수 있다.

WebContent/input.html 작성

<form action="inputForm" method="post">
    이름 : <input type="text" name="name" size="10"/><br/>
    아이디 : <input type="text" name="id" size="10"/><br/>
    비밀번호 ; <input type="password" name="pw" size='10' /><br/>
    취미 : <input type="checkbox" name="hobby" value="read"/><br/>
    <input type="checkbox" name="hobby" value="cook"/>요리
    <input type="checkbox" name="hobby" value="run"/>조깅
    <input type="checkbox" name="hobby" value="swim"/>수영
    <input type="checkbox" name="hobby" value="sleep"/>취침

    <input type="radio" name="major" value="kor"/>국어  
    <input type="radio" name="major" value="eng" checked="checked"/>영어
    <input type="radio" name="major" value="mat"/>수학
    <input type="radio" name="major" value="des"/>디자인

    <select name="protocol">
      <option value="http">http</option>
      <option value="ftp" selected="selected">ftp</option>
      <option value="smtp">smtp</option>
      <option value="pop">pop</option>
    </select>
    <input type="submit" value="전송" />
    <input type="reset" value="취소" />
</form>

InputServlet.java 작성

package com.jsp.study;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Enumeration;

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("/inputForm")
public class InputForm extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public InputForm() {
        super();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("doGet");
    }

    protected void doPost(
        HttpServletRequest request, 
        HttpServletResponse response
    ) throws ServletException, IOException {
        System.out.println("doPost");
        request.setCharacterEncoding("utf-8");

        // form태그내의 name에 해당하는 값들을 가지고옴 return타입은 String
        // request.getParameter("name");
        String name = request.getParameter("name");
        String id = request.getParameter("id");
        String pw = request.getParameter("pw");

        // request.getParameterValues("name"); => return String[] : checkbox등에 사용
        String[] hobbys = request.getParameterValues("hobby");
        String major = request.getParameter("major");
        String protocol = request.getParameter("protocol");

        // request.getParameterNames() : 넘긴 name값을 Enumeration 타입으로 반환함
        Enumeration<String> e = request.getParameterNames();
        while (e.hasMoreElements()) {
            String param = e.nextElement();
            System.out.println(request.getParameter(param));
        }

        // 응답 문서 인코딩 타입 지정
        response.setContentType("text/html;charset=utf-8");

        // 문서 출력 스트림 객체 얻기
        PrintWriter writer = response.getWriter();         
        writer.println("<head></head>");
        writer.println("이름 : " + name + "<br/>");
        writer.println("아이디 : " + id + "<br/>");
        writer.println("비밀번호 : " + pw + "<br/>");
        writer.println("취미 : " + Arrays.toString(hobbys) + "<br/>");
        writer.println("전공 : " + major + "<br/>");
        writer.println("프로토콜 : " + protocol + "<br/>");
        writer.println("");
        writer.close();    // 해제 
    }
}

Tomcat의 server.xml에 추가

<Context docBase="ServletFormTest" path="/ServletFormTest" reloadable="true" source="org.eclipse.jst.jee.server:ServletFormTest"/>

위 작성글은 [자바 웹을 다루는 기술]에서 간단히 정리한 것입니다.