@WebServlet(name = "helloServlet", urlPatterns = "/hello")
서블릿 컨테이너 동작 방식 설명
웹 브라우저에서 localhost:8080/hello로 요청이 들어오면 HTTP요청 메시지를 기반으로 request 객체를 생성하고 해당 메서드를 실행한다.
이후 response 객체에 정보를 담아 응답을 생성하고 웹 브라우저에 보낸다.
- 이미지 출처: 김영한 spring mvc 1편 강의자료
클라이언트에서 서버로 요청 데이터를 전달할 때는 주로 다음 3가지 방법을 사용한다
/url?username=hello&age=20
메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달
ex) 검색, 필터, 페이징등에서 많이 사용하는 방식
-> 쿼리 파라미터는 URL에 다음과 같이 ? 를 시작으로 보낼 수 있다. 추가 파라미터는 & 로 구분하면 된다.
content-type: application/x-www-form-urlencoded
메시지 바디에 쿼리 파리미터 형식으로 전달
-> username=hello&age=20
예) 회원 가입, 상품 주문, HTML Form 사용
HTTP API에서 주로 사용, JSON, XML, TEXT
데이터 형식은 주로 JSON 사용
POST, PUT, PATCH
쿼리 파라미터, html form 은
request.getParameter("변수명")
를 사용
message body 에 직접 담아서 온 요청은 그 데이터 자체를 다 가져와서 분석하는 코드가 있는데 좀 복잡하다. 나중에 spring 에서 지원하는 기능을 통해 훨씬 간단하게 데이터를 추출할 수 있음으로 고전적인 방법은 이해하기를 포기하였다.
응답도 마찬가지 고전적인 방법들은 복잡하고 매우 비효율적임. 나중에 spring 에서 지원하는 기능들을 통해 응답 방법들을 다시 정리할 예정