Spring Response와 Request
Servlet은 무엇인가
서블릿은 웹 브라우저(클라이언트)와 서버 간의 대화에서 중개인과 같습니다.
브라우저에서 요청을 수신하고 처리하고 응답을 다시 보내는 서버에서 실행되는 작은 프로그램입니다.
스프링 프레임워크의 맥락에서 우리는 종종 특별한 종류의 서블릿인 DispatcherServlet
에 대해 이야기합니다.
점포의 점장이라고 생각하시면 됩니다.
고객(요청)이 매장에 들어오면 관리자(DispatcherServlet
)가 고객을 올바른 부서(컨트롤러)로 안내합니다.
부서에서 고객이 필요로 하는 모든 것을 갖추면(요청 처리) 관리자는 고객이 이를 받도록 합니다(응답 보내기).
즉, DispatcherServlet
은 모든 요청을 수신하고 처리를 위해 보낼 위치를 결정하는 것입니다.
일단 처리되면 응답을 다시 클라이언트로 보내는 일도 처리합니다.
이는 훌륭한 매장 관리자가 원활한 운영을 보장하는 것처럼 작업 흐름을 체계적으로 유지하는 데 도움이 됩니다.
전반적으로 Spring의 Servlet, 특히 DispatcherServlet
은 웹 애플리케이션에서 데이터 흐름을 관리하는 데 도움을 주어 요청과 응답이 필요한 곳으로 이동하도록 합니다.
Exmale. HttpServletRequest 및 HttpServletResponse
예제를 통해서 Spring의 응답과 요청 방법을 알아 보도록 하겠습니다.
제공된 Java 코드는 HTTP 요청 및 응답을 처리할 때 HttpServletRequest 및 HttpServletResponse 객체의 사용법을 보여주는 간단한 서블릿을 나타냅니다
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Random;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/rollDice2")
public class TwoDiceServlet extends HttpServlet {
int getRandomInt(int range) {
return new Random().nextInt(range)+1;
}
public void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
int idx1 = getRandomInt(6);
int idx2 = getRandomInt(6);
response.setContentType("text/html");
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("</head>");
out.println("<body>");
out.println("<img src='resources/img/dice"+idx1+".jpg'>");
out.println("<img src='resources/img/dice"+idx2+".jpg'>");
out.println("</body>");
out.println("</html>");
out.close();
}
}
이 코드의 주요 구성 요소를 분석해 보겠습니다:
-
웹서브렛(“/rollDice2”)
- 이 어노테이션은 서버에 이 클래스가 서블릿이며 “/rollDice2” URL로 들어오는 요청을 이 서블릿에 매핑해야 함을 알려줍니다
-
public void service(HttpServletRequest 요청, HttpServletResponse 응답)
- 클라이언트가 “/rollDice2” URL을 요청할 때 호출되는 메인 메서드입니다.
- 이 메서드는 GET 요청과 POST 요청을 모두 처리합니다
-
response.setContentType(“text/html”); response.setCharacterEncoding(“utf-8”);
- 이 줄은 클라이언트에 전송할 응답의 콘텐츠 유형과 문자 인코딩을 설정합니다
-
PrintWriter out = response.getWriter();
- 이 코드 줄은 클라이언트에 문자 텍스트를 전송하는 데 사용할 수 있는 PrintWriter 객체를 응답에서 가져옵니다.
-
out.println(…)
- 이 코드 줄은 PrintWriter를 사용하여 HTML 문서를 클라이언트로 다시 보냅니다.
- 이 문서에는 주사위 굴리기 결과를 보여주는 두 개의 이미지 태그가 포함되어 있습니다
-
out.close();: 이 줄은 시스템 리소스를 확보하기 위한 필수 단계인 PrintWriter를 닫습니다.
전반적으로 이 코드는 HttpServletRequest 및 HttpServletResponse 객체를 사용하여 HTTP 요청을 처리하고 HTTP 응답을 전송하는 방법을 보여줍니다.
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
'DEV > Java' 카테고리의 다른 글
Java 런타임에 매개변수 이름 얻는 방법 (0) | 2023.05.19 |
---|---|
Spring의 코드 분리 (0) | 2023.05.18 |
Spring의 HTTP 처리 (0) | 2023.05.13 |
Aspect-oriented programming (AOP) (0) | 2023.05.11 |
Spring (0) | 2023.05.11 |