protected void service(HttpServletRequest request, HttpServletResponse response)
@WebServlet 을 통해 스프링부트가 서블릿 컨테이너에 내장톰켓서버로 helloServlet을 미리 생성해논다.
이제 HTTP요청 메세지를 기반으로 request ,response 객체를 생성하고
실행한것을 helloServelet에 넣고 종료될떄 response객체에 담겨져 HTTP응답을 생성한다.
HTTP응답인 Response객체를 통해 !웹 화면에 이렇게 보이게됨
HTTP 요청 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 불편할 것이다. 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다. 그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다. HTTP를 편하게 조회할 수 있게됨.
HTTP요청 메세지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법은
주로 3가지의 방법을 사용한다.
GET쿼리파라미터 요청데이터의 서버 전송과정
http://localhost:8080/request-param?username=hello&username=kim&age=20 이렇게 요청이 오면
[단일 파라미터 조회]
request.getParameter(username) = hello
request.getParameter(age) = 20
[이름이 같은 복수 파라미터 조회]
request.getParameterValues(username)
username=hello
JSON형식으로 주고 받기
일반적으로 JSON형식을 데이터를 객체로 바꿀 수 있도록 JSON파싱 추가
objectmapper를 활용
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
이거로 응답메세지 헤더를 구성한다.
PrintWriter writer = response.getWriter(); :
쓰기를 통해 response 객체를 반환한다는 뜻
writer.println("안녕?");
하면 화면에 안녕이 출력됨
다른클래스인 HelloData의 이름과 나이를 설정해주고 그 설정값들을
JSON형식으로 바꾸기 위해서는 ObjectMapper 객체를 만들고
그객체를 이용해 writeValueAsString을 통해 JSON형식으로 바꾸어주며 출력해줌