본문 바로가기
MVC with 김영한

서블릿

by wonseok99 2021. 10. 4.

HttpServletRequest  개요

서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신 요청 메시지를 파싱 한다.
그 후 HttpServletRequest 객체에 담아서 제공한다.

<HTTP 요청 메시지>

// START LINE
POST /save HTTP/1.1 

// HEADER
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded

// BODY
username=kim&age=20


- 임시 저장소 기능

해당 HTTP 요청이 시작부터 끝날 때까지 유지되는 임시 저장소

  • 저장 : request.setArrtibute(name, value)
  • 조회 : request.getAttribute(name)

- 세션 관리 기능

  • request.getSession(create: true)
    ex) 누군가의 로그인 유지 기능

 

HTTP 요청 데이터  //  request

  1. GET - 쿼리 파라미터
    - /url*? username=hello&age=20

    GET 방식은 메시지 바디 없이, URL에 있는 쿼리 파라미터에 데이터를 전달한다.
    ex) 검색, 필터링, 페이징
    username = hello
    age = 20

    requset.getParameter()를 사용하면 requeset.getParameterValues()의 첫 번째 값을 반환한다.
    [GET, POST 방식 둘 다 지원한다]

  2. POST - HTML From
    꼭 content-type을 통해 포함된 데이터의 형식을 지정해야 한다.
    메시지 바디에 쿼리 파라미터 형식으로 데이터를 전달 username=hello&age=20
    ex) 회원 가입, 상품 주문 등

    쿼리 파라미터 조회 메서드를 그대로 사용하면 된다.

  3. HTTP message body에 데이터를 직접 담아서 요청
    HTTP API에서 주로 사용, JSON, XML, TEXT 형식을 서버로 전달.
    주로 JSON 형식을 사용
    POST, PUT, PATCH

    ※ JSON 결과를 파싱 해서 사용할 수 있는 자바 객체로 변환하려면 Jackson, Gson 같은 JSON 변환 라이브러리를 추가해서 사용해야 하며, 스프링 부트로 Sprinv MVC를 선택하면 기본 Jackson 라이브러리 ObjectMapper를 함께 제공한다.

 

 

HttpServletResponse 개요


HttpServletRequest 에서 전달받은 Request 객체를 통해 HTTP 응답 메시지를 생성한다.

[ HTTP 응답 메세지 생성 ]
- HTTP 응답코드 지정
- 헤더 생성
- 바디 생성

 

HTTP 응답 데이터  //  response

  1. 단순 텍스트, HTML
    // Content-Type : 쿠키, Redirect
    HTTP 응답 데이터 - 단순 텍스트, HTML
  2.  API JSON
    // Content-Type : application/json

 

 

서블릿과 자바 코드만으로 HTML을 만들게 되면, 동적 HTML을 만들 수 있다. 하지만 매우 복잡하고 비효율 적인데
자바 코드로 HTML을 만드는 것 보다 HTML 문서를 통해 동적으로 변경할 수 있는것이 바로 템플릿 엔진이다!
ex) JSP, Thymeleaf, Freemarker, Velocity 등등..

'MVC with 김영한' 카테고리의 다른 글

스프링 애노테이션  (0) 2021.10.16
스프링 MVC  (0) 2021.10.15
MVC 프레임워크  (0) 2021.10.07
MVC 패턴  (0) 2021.10.06
웹 애플리케이션의 구조  (0) 2021.10.02