스프링 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