Spring MVC/서블릿 11

[Spring MVC] 서블릿 - HTTP 응답 데이터 (API JSON)

HTTP 응답 데이터 - API JSON hello.servlet.web.response. ResponseJsonServlet package hello.servlet.basic.response; import com.fasterxml.jackson.databind.ObjectMapper; import hello.servlet.basic.HelloData; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpS..

[Spring MVC] 서블릿 - HTTP 응답 데이터 (단순 텍스트, HTML)

HTTP 응답 데이터 - 단순 텍스트, HTML HTTP 응답 메시지는 주로 다음 내용을 담아서 전달한다. 단순 텍스트 응답 앞에서 살펴봄 ( writer.println("ok"); ) HTML 응답 HTTP API - MessageBody JSON 응답 HttpServletResponse - HTML 응답 hello.servlet.web.response.ResponseHtmlServlet package hello.servlet.basic.response; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servl..

[Spring MVC] 서블릿 - HttpServletResponse 기본 사용법

HttpServletResponse - 기본 사용법 HttpServletResponse 역할 HTTP 응답 메시지 생성 HTTP 응답 코드 지정 헤더 생성 바디 생성 편의 기능 제공 Content-Type, 쿠키, Redirect HttpServletResponse - 기본 사용법 hello.servlet.basic.response.ResponseHeaderServlet package hello.servlet.basic.response; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServ..

[Spring MVC] 서블릿 - HTTP 요청 데이터 (API 메시지 바디 - JSON)

HTTP 요청 데이터 - API 메시지 바디 - JSON 이번에는 HTTP API에서 주로 사용하는 JSON 형식으로 데이터를 전달해 보자. JSON 형식 전송 POST http://localhost:8080/request-body-json content-type: application/json message body: {"username": "hello", "age": 20} 결과: messageBody = {"username": "hello", "age": 20} JSON 형식 파싱 추가 JSON 형식으로 파싱 할 수 있게 객체를 하나 생성하자 hello.servlet.basic.HelloData package hello.servlet.basic; import lombok.Getter; import ..

[Spring MVC] 서블릿 - HTTP 요청 데이터 (API 메시지 바디 - 단순 텍스트)

HTTP 요청 데이터 - API 메시지 바디 (단순 텍스트) HTTP message body에 데이터를 직접 담아서 요청 HTTP API에서 주로 사용, JSON, XML, TEXT 데이터 형식은 주로 JSON 사용 POST, PUT, PATCH 먼저 가장 단순한 텍스트 메시지를 HTTP 메시지 바디에 담아서 전송하고, 읽어보자. HTTP 메시지 바디의 데이터를 InputStream을 사용해서 직접 읽을 수 있다. RequestBodyStringServlet package hello.servlet.basic.request; import org.springframework.util.StreamUtils; import javax.servlet.ServletException; import javax.servl..

[Spring MVC] 서블릿 - HTTP 요청 데이터 (Post HTML Form)

HTTP 요청 데이터 - Post HTML Form 이번에는 HTML의 Form을 사용해서 클라이언트에서 서버로 데이터를 전송해 보자. 주로 회원 가입, 상품 주문 등에서 사용하는 방식이다. 특징 content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파리미터 형식으로 데이터를 전달한다. username=hello&age=20 src/main/webapp/basic/hello-form.html 생성 username: age: 전송 실행해 보자. http://localhost:8080/basic/hello-form.html 주의 웹 브라우저가 결과를 캐시하고 있어서, 과거에 작성했던 html 결과가 보이는 경우도 있다. 이때는 웹 브라우저의 새로 고침을 직..

[Spring MVC] 서블릿 - HTTP 요청 데이터 개요, GET 쿼리 파라미터

HTTP 요청 데이터 - 개요 HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법을 알아보자. 주로 다음 3가지 방법을 사용한다. GET - 쿼리 파라미터 /url?username=hello&age=20 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 POST - HTML Form content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20 예) 회원 가입, 상품 주문, HTML Form 사용 HTTP message body에 데이터를 직접 담아서 요청 HTTP API에서 주로 사용, JSON, XML, T..

[Spring MVC] 서블릿 - HttpServletRequest 기본 사용법

HttpServletRequest - 기본 사용법 HttpServletRequest가 제공하는 기본 기능들을 알아보자. hello.servlet.basic.request.RequestHeaderServlet package hello.servlet.basic.request; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRespon..

[Spring MVC] 서블릿 - HttpServletRequest 개요

HttpServletRequest 역할 HTTP 요청 메시지를 개발자가 직접 파싱 해서 사용해도 되지만, 매우 불편할 것이다. 서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱 한다. 그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다. HttpServletRequest를 사용하면 다음과 같은 HTTP 요청 메시지를 편리하게 조회할 수 있다. Http 요청 메시지 POST /save HTTP/1.1 Host: localhost:8080 Content-Type: application/x-www-form-urlencoded username=kim&age=20 Start Line POST /save HTTP/1.1 HTTP 메..

[Spring MVC] 서블릿 - Hello 서블릿 등록 및 사용

Hello 서블릿 스피링 부트 환경에서 서블릿을 등록하고 사용해 보자. 참고 서블릿은 톰캣 같은 웹 애플리케이션 서버를 직접 설치하고, 그 위에 서블릿 코드를 클래스 파일로 빌드해서 올린 후에 톰캣 서버를 실행하면 된다. 하지만 이 과정은 매우 번거롭다. 스프링 부트는 톰캣 서버를 내장하고 있으므로, 톰캣 서버 설치 없이 편리하게 서블릿 코드를 실행할 수 있다. 스프링 부트 서블릿 환경 구성 @ServletComponentScan 스프링 부트는 서블릿을 직접 등록해서 사용할 수 있도록 @ServletComponentScan을 지원한다. 다음과 같이 추가하자. hello.servlet.ServletApplication package hello.servlet; import org.springframework..