이 글은 Velog에서 이전한 글입니다. Velog 원문 보기
⭐️Servlet?
Servlet은 동적인 웹페이지를 만들 때 사용되는 자바 기반 프로그래밍 기술이다. Servlet은 복잡한 웹 요청과 응답 과정을 간단한 메서드 호출로 다룰 수 있게 해준다.
public class ResponseJsonServlet extends HttpServlet {
ObjectMapper objectMapper = new ObjectMapper();
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {...}
📌 Servlet 동작 방식

클라이언트가 웹 서버에 HTTP 요청 메세지를 보내면 서버가 request, response 객체를 생성하고 서블릿 컨테이너에 있는 Servlet을 호출하면서 객체를 넘겨준다. Servlet이 작업을 한 뒤 종료되면서 HTTP 응답 메세지를 반환한다.
HTTP 응답에서 Content-Length 등의 부가 정보는 서버가 자동으로 생성한다.
📌 HttpServletRequest
HttpServletRequest 역할: 개발자가 HTTP 요청 메세지를 편리하게 사용할 수 있도록 HTTP 요청 메세지를 파싱한다. 그 결과를 HttpServletRequest 객체에 담아서 제공한다.
HttpServlet객체는 HTTP 요청 메세지만 읽는 것이 아니라 임시 저장소 등의 부가 기능도 제공한다.
/** 저장: HTTP 요청 메세지 안에 작은 데이터 저장소가 존재한다.
HTTP 요청 메세지가 살아있는 동안 사용할 수 있게 데이터를 넣어준다. **/
request.setAttribute(name, value)
/** 조회: HTTP 속 데이터 저장소에서 데이터를 꺼낸다. **/
request.getAttribute(name)
✔︎ HTTP 요청 데이터 - GET Query Parameter
- url?name=psm&age=23
- 메세지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달
- 검색, 필터, 페이징 등에서 많이 사용하는 방식
Query Parameter는 URL에 ?를 시작으로 보낼 수 있다. 추가 Parameter는 &로 구분하면 된다.EX) http://localhost:8080?username=park&age=20
request.getParameter("username"); //단일 파라미터 조회
request.getParameterNames(); //파라미터 이름들 모두 조회
request.getParameterMap(); //파라미터를 Map 으로 조회
request.getParameterValues("username"); //이름이 같은 복수 파라미터 조회
url?username=kim&username=park<- 이처럼Paramerter의 이름은 하나인데 값이 중복일 때request.getParameter("username")를 하면 첫 번째 값을 반환한다.
✔︎ HTTP 요청 데이터 - POST HTML Form
- content-type: application/x-www-form-urlencoded
- 메세지 바디에 Query Parameter 형식으로 데이터를 전달한다.
application/x-www-form-urlencoded 형식은 이전에 작성한 GET에서 본 Query Parameter 형식과 같다.
클라이언트 입장에서는 두 방식에 차이가 존재하지만, 서버 입장에서는 동일한 형식으로 인식하므로
request.getParameter()로 구분없이 조회 가능하다.
✔︎ HTTP 요청 데이터 - API 메세지 바디
- HTTP message body에 데이터를 직접 담아서 요청
- HTTP API에서 주로 사용한다. (JSON, XML, TEXT)
- 데이터 형식은 주로 JSON을 사용한다.
김영한님의 스프링 MVC 강의
김영한님의 인프런 로드맵을 따라가면서 스프링을 공부하고 있습니다.
공부한 내용들을 velog에 정리합니다!
'Backend > Spring MVC' 카테고리의 다른 글
| ✏️ 요청 매핑 (0) | 2026.07.18 |
|---|---|
| ✏️ Logging (0) | 2026.07.18 |
| ✏️ Spring MVC 시작하기 (0) | 2026.07.18 |
| ✏️ Front Controller 패턴, Adapter 패턴 (0) | 2026.07.18 |
| ✏️ MVC 패턴 (0) | 2026.07.18 |