[참고] request 객체와 response 객체

박은서's avatar
Jan 29, 2026
[참고] request 객체와 response 객체

1. request 객체 (HttpServletRequest)

1️⃣ 개념

  • 클라이언트(브라우저)가 서버로 보낸 HTTP 요청 정보를 캡슐화한 객체
  • 요청 데이터(파라미터, 헤더, 쿠키, 세션, HTTP 메서드 등)에 접근할 수 있음

2️⃣ 주요 역할

“클라이언트가 무엇을, 어떻게 요청했는가?”

3️⃣ 주요 정보 종류

1) 요청 파라미터

HTML form, query string 등을 통해 전달된 값
String id = request.getParameter("id"); String[] hobbies = request.getParameterValues("hobby");
  • getParameter() : 단일 값
  • getParameterValues() : 다중 값 (checkbox 등)

2) HTTP 메서드 및 URI 정보

request.getMethod(); // GET, POST request.getRequestURI(); // /login.do request.getContextPath(); // /myapp request.getServletPath(); // /login.do

3) 헤더 정보

request.getHeader("User-Agent"); request.getHeader("Referer");

4) 쿠키

Cookie[] cookies = request.getCookies();

5) 세션

HttpSession session = request.getSession(); session.setAttribute("user", user);

6) 요청 바디 (POST 데이터)

BufferedReader br = request.getReader();
(JSON, XML 등 직접 파싱할 때 사용)

4️⃣ 특징 요약

  • 읽기 전용 성격
  • 요청 1회당 1개 생성
  • 클라이언트 → 서버 방향 데이터

2. response 객체 (HttpServletResponse)

1️⃣ 개념

  • 서버가 클라이언트에게 보낼 HTTP 응답을 구성하는 객체
  • 상태 코드, 헤더, 바디(HTML/JSON 등)를 설정

2️⃣ 주요 역할

“서버가 클라이언트에게 무엇을 돌려줄 것인가?”

3️⃣ 주요 기능

1) 응답 데이터 출력

response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); out.println("<h1>Hello Servlet</h1>");
  • getWriter() : 문자 기반 출력
  • getOutputStream() : 바이너리 출력 (파일, 이미지)

2) HTTP 상태 코드

response.setStatus(HttpServletResponse.SC_OK); // 200 response.sendError(HttpServletResponse.SC_NOT_FOUND); // 404

3) 리다이렉트

response.sendRedirect("login.jsp");
  • 클라이언트에게 새 요청을 지시

4) 헤더 설정

response.setHeader("Cache-Control", "no-cache");

5) 쿠키 생성

Cookie cookie = new Cookie("token", "abc123"); cookie.setMaxAge(60 * 60); response.addCookie(cookie);

4️⃣ 특징 요약

  • 쓰기 전용 성격
  • 응답은 한 번만 전송 가능
  • 서버 → 클라이언트 방향 데이터

3. request vs response 비교

구분
request
response
방향
클라이언트 → 서버
서버 → 클라이언트
목적
요청 정보 읽기
응답 정보 생성
주요 데이터
파라미터, 헤더, 세션
HTML, JSON, 상태 코드
객체 생성 시점
요청 발생 시
요청과 동시에

4. 서블릿에서의 흐름 예제

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); response.setContentType("text/plain; charset=UTF-8"); response.getWriter().println("Hello " + name); }
💡
요약 흐름
  1. 클라이언트 요청 → request 생성
  1. 서블릿 로직 처리
  1. response에 결과 작성
  1. 서버 → 클라이언트 응답 전송

5. 핵심 정리

  • request입력
  • response출력
  • 서블릿은 요청을 해석하고 응답을 생성하는 컨트롤러 역할

그림으로 이해하기

notion image
Share article