서블릿의 응답처리

decody·2019년 8월 21일
0

아래 코드를 작성한 후, 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"/>

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

profile
Self-Taught Frontend Developer, Designer, and Dad. Want to be an unsung hero in tech. [motto] I design something indefinable in the world.

0개의 댓글