아래 코드를 작성한 후, 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"/>
위 작성글은 [자바 웹을 다루는 기술]에서 간단히 정리한 것입니다.