스프링 MVC 1편 -벡엔드 웹 개발 핵심 기술 (2)

bin1225·2021년 9월 22일
0

Spring

목록 보기
2/15
post-thumbnail

서블릿

@WebServlet(name = "helloServlet", urlPatterns = "/hello")
  • WebServlet 서블릿 애노테이션
    - name: 서블릿 이름
    - urlPatterns: URL 매핑

서블릿 컨테이너 동작 방식 설명
웹 브라우저에서 localhost:8080/hello로 요청이 들어오면 HTTP요청 메시지를 기반으로 request 객체를 생성하고 해당 메서드를 실행한다.
이후 response 객체에 정보를 담아 응답을 생성하고 웹 브라우저에 보낸다.
- 이미지 출처: 김영한 spring mvc 1편 강의자료

HTTP 요청

클라이언트에서 서버로 요청 데이터를 전달할 때는 주로 다음 3가지 방법을 사용한다

1. GET - 쿼리 파라미터

/url?username=hello&age=20

메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달

ex) 검색, 필터, 페이징등에서 많이 사용하는 방식

-> 쿼리 파라미터는 URL에 다음과 같이 ? 를 시작으로 보낼 수 있다. 추가 파라미터는 & 로 구분하면 된다.

2. POST - HTML Form

content-type: application/x-www-form-urlencoded

메시지 바디에 쿼리 파리미터 형식으로 전달
-> username=hello&age=20

예) 회원 가입, 상품 주문, HTML Form 사용

3. HTTP message body에 데이터를 직접 담아서 요청

HTTP API에서 주로 사용, JSON, XML, TEXT
데이터 형식은 주로 JSON 사용
POST, PUT, PATCH

결론

쿼리 파라미터, html form 은

request.getParameter("변수명")

를 사용

message body 에 직접 담아서 온 요청은 그 데이터 자체를 다 가져와서 분석하는 코드가 있는데 좀 복잡하다. 나중에 spring 에서 지원하는 기능을 통해 훨씬 간단하게 데이터를 추출할 수 있음으로 고전적인 방법은 이해하기를 포기하였다.

HTTP 응답

  • HTTP 응답 데이터 - 단순 텍스트, HTML
    HTTP 응답 메시지는 주로 다음 내용을 담아서 전달한다.
    - 단순 텍스트 응답
    앞에서 살펴봄 ( writer.println("ok"); )
    - HTML 응답
    - HTTP API - MessageBody JSON 응답

응답도 마찬가지 고전적인 방법들은 복잡하고 매우 비효율적임. 나중에 spring 에서 지원하는 기능들을 통해 응답 방법들을 다시 정리할 예정

0개의 댓글