스프링 MVC 1편 - 2. 서블릿
Updated:
김영한님의 인프런 강의 - 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
위 강의를 정리한 내용입니다.
I. Hello 서블릿
@ServletComponentScan : 하위 패키지 중 서블릿을 모두 찾아서 등록, 실행할 수 있도록 도와줌
- 서블릿으로 등록하려는 클래스는 HttpServlet을 상속해주자
- @WebServlet(name = "", urlPatterns = "/")- urlPatterns로 접근하면 해당 클래스가 실행됨
 
- reuqest.getParameter("x"): 쿼리 파라미터를 간편하게 파싱
- response.getWriter().write("a"): 응답 바디 작성
- logging.level.org.apache.coyote.http11=debug: 프로퍼티에 작성 시 요청에 대한 전문을 볼 수 있다.
II. HttpServletRequest
- HTTP 요청 메세지를 파싱하여 HttpServletRequest객체에 담아 제공
- 임시 저장소 기능 : 해당 HTTP 요청이 시작부터 끝날 때 까지 유지되는 임시 저장소 기능
    - 저장 : request.setAttribute(name, value)
- 조회 : request.getAttribute(name)
 
- 저장 : 
- 세션 관리 기능
    - request.getSession(create: true)
 
HTTP 요청 데이터
- GET - 쿼리 파라미터- URL에 쿼리 파라미터를 포함해서 전달
- 검색, 필더, 페이징 등
 
- POST - HTML Form- content-type:application/x-www-form-urlencoded
- 메세지 바디에 쿼리 파라미터 형식으로 전달
- 회원가입, 상품주문 등
 
- HTTP message body에 데이터를 직접 담아 요청- HTTP API에서 주로 사용, JSON, XML, TEXT
- 데이터 형식은 주로 JSON
- POST, PUT, PATCH
 
GET - 쿼리 파라미터
- URL에 ?로 시작, 추가 파라미터는&로 구분
- request.getParameterValues(): 하나의 키값에 여러 값이 들어가있을 때
HTTP 요청 데이터 - POST HTML Form
- GET방식과 똑같이- request.getParamter()로 꺼낼 수 있다.
HTTP 요청 데이터 - API 메세지 바디 - JSON
- content-type: “application/json”
- JSON도 결국은 그냥 문자다.
- 스프링 부트가 기본적으로 지원하는 JSON 변환 라이브러리(J ackson) 사용
III. HttpServletResponse
- response.setStatus(HttpServletResponse.SC_OK);- 응답코드 200 을 대신함(매직넘버보다는 의미있는 값으로 넣기)
 
- Content-Length는 생략하면 자동으로 생성
- response.sendRedirect(): 리다이렉트
HTTP 응답 데이터
API JSON
HelloData helloData = new HelloData();
helloData.setUsername("kim");
helloData.setAge(20);
//{"username":"kim", "age":20}
String result = objectMapper.writeValueAsString(helloData);
response.getWriter().write(result);
Leave a comment