클라이언트에서 서버로 데이터를 전달하는 방법을 정리
request.getMethod(); // HTTP 메서드(GET, POST 등)
request.getProtocol(); // HTTP/1.1 등
request.getScheme(); // http, https
request.getRequestURL(); // 전체 URL
request.getRequestURI(); // URI 경로
request.getQueryString(); // 쿼리 파라미터
request.isSecure(); // HTTPS 사용 여부
request.getMethod() = GET
request.getRequestURL() = http://localhost:8080/request-header
request.getRequestURI() = /request-header
request.getQueryString() = username=hello
request.getHeader("User-Agent"); // 특정 헤더 조회
request.getHeaderNames().asIterator()
.forEachRemaining(name -> System.out.println(name + ": " + request.getHeader(name)));

request.getServerName(); // Host 이름
request.getServerPort(); // Host 포트
request.getLocale(); // 언어 설정
request.getCookies(); // 쿠키 정보
request.getContentType(); // 요청 Content-Type
request.getCharacterEncoding(); // 문자 인코딩
String username = request.getParameter("username"); // 단일 파라미터 조회
request.getParameterNames().asIterator()
.forEachRemaining(param -> System.out.println(param + "=" + request.getParameter(param)));
String[] usernames = request.getParameterValues("username"); // 동일한 이름의 여러 값 조회
http://localhost:8080/request-param?username=hello&username=kim&age=20

application/x-www-form-urlencoded 형식의 데이터를 request.getParameter() 로 조회 가능ServletInputStream inputStream = request.getInputStream();
String messageBody = StreamUtils.copyToString(inputStream, StandardCharsets.UTF_8);
{"username": "hello", "age": 20}
Jackson 사용하여 JSON 파싱:
HelloData helloData = objectMapper.readValue(messageBody, HelloData.class);
서버에서 클라이언트로 응답을 보낼 때 사용
response.setStatus(HttpServletResponse.SC_OK); // HTTP 200 상태 코드 설정
response.setHeader("Content-Type", "text/plain;charset=utf-8"); // 응답 헤더 설정
response.getWriter().write("ok"); // 응답 바디 전송
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setHeader("my-header", "hello");
response.setContentType("text/plain");
response.setCharacterEncoding("utf-8");
Cookie cookie = new Cookie("myCookie", "good");
cookie.setMaxAge(600); // 600초 동안 유지
response.addCookie(cookie);
response.sendRedirect("/basic/hello-form.html"); // 302 리다이렉트
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter writer = response.getWriter();
writer.println("<html><body><div>안녕?</div></body></html>");
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
HelloData data = new HelloData();
data.setUsername("kim");
data.setAge(20);
String result = objectMapper.writeValueAsString(data);
response.getWriter().write(result);
{"username":"kim","age":20}
HttpServletRequest
HttpServletResponse