서블릿에서 GET 요청 파라미터와 POST 폼 데이터 처리하기
서블릿(Servlet)은 클라이언트가 요청한 데이터를 서버에서 처리하는 데 매우 유용합니다. 특히, GET 요청과 POST 요청은 웹 애플리케이션에서 가장 자주 사용되는 HTTP 메서드입니다. 이 글에서는 서블릿에서 URL 파라미터를 GET 요청으로 처리하고, HTML 폼 데이터를 POST 요청으로 처리하는 방법을 예제로 알아보겠습니다.
1. GET 요청에서 URL 파라미터 처리
GET 요청은 주로 URL에 파라미터를 포함하여 서버에 데이터를 전송합니다. 이때 URL에 포함된 파라미터는 HttpServletRequest
객체의 getParameter()
메서드를 사용해 읽어올 수 있습니다.
GET 요청 예제
package com.bluesharehub;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/greet2")
public class GreetServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// URL 파라미터에서 name 값을 가져옴
String name = request.getParameter("name");
if (name == null) {
name = "Guest"; // 기본값 설정
}
// 응답의 콘텐츠 타입 설정
response.setContentType("text/html;charset=UTF-8");
// 클라이언트에게 응답으로 HTML 출력
response.getWriter().write("<h1>Hello, " + name + "!</h1>");
}
}
위 코드에서는 /greet2?name=BlueShare
와 같이 요청하면, “Hello, BlueShare!” 라는 메시지가 출력됩니다. 만약 name 파라미터가 없으면 기본적으로 “Guest”로 처리합니다.
▼ 실행 결과

2. POST 요청에서 폼 데이터 처리
POST 요청은 주로 폼 데이터를 서버에 전송할 때 사용됩니다. 이때 서블릿에서는 doPost()
메서드를 사용하여 클라이언트로부터 전송된 데이터를 처리할 수 있습니다.
POST 요청 예제
package com.bluesharehub;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/formHandler")
public class FormHandlerServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 클라이언트로부터 전달된 폼 데이터 읽기
String username = request.getParameter("username");
String email = request.getParameter("email");
// 응답의 콘텐츠 타입 설정
response.setContentType("text/html;charset=UTF-8");
// 응답으로 HTML 생성
response.getWriter().write("<html><body>");
response.getWriter().write("<h1>사용자 정보</h1>");
response.getWriter().write("<p>이름: " + username + "</p>");
response.getWriter().write("<p>이메일: " + email + "</p>");
response.getWriter().write("</body></html>");
}
}
위 코드는 클라이언트가 폼을 통해 서버에 데이터를 전송하면, 서블릿이 그 데이터를 받아 처리하는 예제입니다. 이름과 이메일을 전송하면 해당 정보를 응답으로 HTML 형태로 출력합니다.
3. HTML 폼 예제 (JSP)
다음은 사용자 이름과 이메일을 입력받아 서블릿으로 전송하는 HTML 폼 예제입니다. 이 예제에서는 POST 요청으로 데이터를 서버로 전송합니다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>폼 데이터 입력</title>
</head>
<body>
<h1>사용자 정보 입력</h1>
<form action="formHandler" method="post">
<label for="username">이름:</label>
<input type="text" id="username" name="username" required><br><br>
<label for="email">이메일:</label>
<input type="email" id="email" name="email" required><br><br>
<input type="submit" value="제출">
</form>
</body>
</html>
이 폼은 사용자가 이름과 이메일을 입력한 후, 데이터를 POST 방식으로 /formHandler
서블릿으로 전송합니다.
▼ 실행 결과

결론
서블릿을 이용하여 클라이언트의 GET 요청과 POST 요청을 처리하는 방법을 살펴보았습니다. GET 요청은 URL 파라미터를 통해 데이터를 전달받아 처리하고, POST 요청은 주로 폼 데이터를 서버에 전송할 때 사용됩니다. 이러한 요청 처리 방식을 적절하게 활용하면 다양한 웹 애플리케이션을 구현할 수 있습니다.
함께 보면 좋은 이전 게시글
- JSP 내장 객체 사용법: request와 response
- web.xml과 애너테이션으로 서블릿 매핑 및 GET/POST 요청 처리
- 서블릿에서 @WebServlet 애너테이션으로 여러 URL 패턴 처리하기
- JSP/Servlet 웹 애플리케이션에서 web.xml 활용한 에러 페이지 설정
- JSP에서 JSTL 코어 태그로 조건문 처리: c:if, c:choose 태그
이 글이 도움이 되셨다면 공유 부탁 드립니다.