HTTP 요청 헤더 출력 코드
Enumeration<String> headerNames = req.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
String headerValue = req.getHeader(headerName);
System.out.println(headerName + ": " + headerValue);
}
결과
host: localhost:8080
connection: keep-alive
sec-ch-ua: "Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
sec-purpose: prefetch;prerender
purpose: prefetch
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
sec-fetch-site: none
sec-fetch-mode: navigate
sec-fetch-user: ?1
sec-fetch-dest: document
accept-encoding: gzip, deflate, br, zstd
accept-language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
host: localhost:8080
connection: keep-alive
sec-ch-ua: "Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
sec-purpose: prefetch;prerender
purpose: prefetch
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
sec-fetch-site: none
sec-fetch-mode: navigate
sec-fetch-user: ?1
sec-fetch-dest: document
accept-encoding: gzip, deflate, br, zstd
accept-language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
HTML 폼 제출 예제
자바 코드
package org.example.demo6;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("*.do")
public class DemoServlet extends HttpServlet {
// insert
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String password = req.getParameter("password");
System.out.println("username: " + username);
System.out.println("password: " + password);
}
}
HTML 코드
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action="http://localhost:8080/hello.do" method="post" enctype="application/x-www-form-urlencoded">
<input type="text" placeholder="Enter username" name="username">
<input type="text" placeholder="Enter password" name="password">
<button type="submit">전송</button>
</form>
</body>
</html>
<form
: 폼을 정의합니다.action
: 폼을 제출할 서버의 URL을 지정합니다.http://localhost:8080/hello.do
로 설정되어 있습니다.
method
: 폼을 제출할 HTTP 메서드입니다. 여기서는post
를 사용하여 데이터를 안전하게 전송합니다.
enctype
: 폼 데이터가 서버로 전송될 때 인코딩 방식을 정의합니다. 여기서는application/x-www-form-urlencoded
방식으로 데이터를 전송합니다.
<input>
: 사용자로부터 정보를 입력받는 필드입니다.type="text"
: 텍스트 입력을 받는 필드입니다.
placeholder
: 입력란에 표시되는 안내 텍스트입니다.
name
: 서버에서 받을 데이터의 이름을 지정합니다. 서버에서는 이 이름을 키로 사용하여 데이터를 처리합니다.
<button type="submit">
: 폼을 제출하는 버튼입니다.
사용자가 클릭하면 입력한 데이터가 서버로 전송됩니다.

GET 및 POST 요청 처리
package org.example.demo6;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Enumeration;
@WebServlet("*.do")
public class DemoServlet extends HttpServlet {
// select
// localhost:8080/demo.do?username=ssar&password=1234
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String path = req.getRequestURI();
System.out.println("path : " + path);
String method = req.getMethod();
System.out.println("method : " + method);
String queryString = req.getQueryString(); // where에 걸린다. 구체적 질의
System.out.println("queryString : " + queryString);
String username = req.getParameter("username"); // 파싱
System.out.println("username : " + username);
String password = req.getParameter("password"); // 파싱
System.out.println("password : " + password);
// 헤더 정보 출력
String method1 = req.getHeader("User-Agent");
System.out.println("User-Agent : " + method1);
String host = req.getHeader("Host");
System.out.println("Host : " + host);
Enumeration<String> headerNames = req.getHeaderNames();
while (headerNames.hasMoreElements()) {
String headerName = headerNames.nextElement();
String headerValue = req.getHeader(headerName);
System.out.println(headerName + ": " + headerValue);
}
}
// insert
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username"); // POST 방식 파라미터 추출
String password = req.getParameter("password"); // POST 방식 파라미터 추출
System.out.println("username: " + username);
System.out.println("password: " + password);
String body = "";
BufferedReader br = req.getReader();
while (true) {
String line = br.readLine(); // 한 줄씩 읽음
if (line == null) break; // 더 이상 읽을 내용이 없으면 종료
body = body + line; // 본문 내용 누적
}
System.out.println("body : " + body); // 본문 내용 출력
}
}
📌 정리
기능 | 설명 |
doGet() 처리 | GET 요청을 처리하며 URL, 쿼리 파라미터, 헤더를 출력 |
doPost() 처리 | POST 요청을 처리하며 파라미터와 본문을 출력 |
HttpServletRequest | 요청 정보를 담고 있는 객체, 다양한 메서드 제공 |
BufferedReader | 요청 본문 데이터를 한 줄씩 읽는 데 사용 |
Share article