4. Request, Response 객체 이해하기 - accidentlywoo/legacyVue GitHub Wiki
- 들어가기 전에 이번 파트를 학습하다 보면 '요청','응답'이라는 용어가 많이 등장합니다. 이번 학습에서는 클라이언트가 서버에게 보낸 요청을 추상화한 객체 HttpServletRequest 와 서버가 클라이언트에게 응답하기 위한 정보를 추상화한 객체 HttpServletResponse에 대해서 알아봅니다.
- HttpServletRequest 객체를 이해한다.
- HttpServleyResponse 객체를 이해한다.
- HttpServletRequest
- HttpServletResponse
WAS는 웹 브라우저로부터 Servlet요청을 받으면,
- 요청할 때 가지고 있는 정보를 HttpServletRequest객체를 생성하여 저장합니다.
- 웹 브라우저에게 응답을 보낼 때 사용하기 위하여 HttpServletResponse객체를 생성합니다.
- 생성된 HttpServletRequest, HttpServletResponse 객체를 서블릿에게 전달합니다.
- http 프로토콜의 request 정보를 서블릿에게 전달하기 위한 목적으로 사용합니다.
- 헤더정보, 파라미터, 쿠키, URI, URL 등의 정보를 읽어 들이는 메소드를 가지고 있습니다.
- Body의 Stream을 읽어 들이는 메소드를 가지고 있습니다.
- WAS는 어떤 클라이언트가 요청을 보냈는지 알고 있고, 해당 클라이언트에게 응답을 보내기 위한 HttpServletResponse 객체를 생성하여 서블릿에게 전달합니다.
- 서블릿은 해당 객체를 이용하여 content type, 응답코드, 응답 메시지등을 전송합니다.
HeaderServlet.java `package examples;
import java.io.IOException; import java.io.PrintWriter; import java.util.Enumeration;
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
/**
-
Servlet implementation class HeaderServlet */ @WebServlet("/header") public class HeaderServlet extends HttpServlet { private static final long serialVersionUID = 1L;
/**
- @see HttpServlet#HttpServlet() */ public HeaderServlet() { super(); // TODO Auto-generated constructor stub }
/**
-
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(""); out.println("
<title>form</title>"); out.println("");Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) { String headerName = headerNames.nextElement(); String headerValue = request.getHeader(headerName); out.println(headerName + " : " + headerValue + "
"); }out.println(""); out.println(""); }
/**
- @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }
}`
ParameterServlet.java `package examples;
import java.io.IOException; import java.io.PrintWriter;
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
/**
-
Servlet implementation class ParameterServlet */ @WebServlet("/param") public class ParameterServlet extends HttpServlet { private static final long serialVersionUID = 1L;
/**
- @see HttpServlet#HttpServlet() */ public ParameterServlet() { super(); // TODO Auto-generated constructor stub }
/**
-
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(""); out.println("
<title>form</title>"); out.println("");String name = request.getParameter("name"); String age = request.getParameter("age");
out.println("name : " + name + "
"); out.println("age : " +age + "
");out.println(""); out.println(""); }
}`
InfoServlet.java `package examples;
import java.io.IOException; import java.io.PrintWriter;
import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
/**
-
Servlet implementation class InfoServlet */ @WebServlet("/info") public class InfoServlet extends HttpServlet { private static final long serialVersionUID = 1L;
/**
- @see HttpServlet#HttpServlet() */ public InfoServlet() { super(); // TODO Auto-generated constructor stub }
/**
-
@see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(""); out.println("
<title>info</title>"); out.println("");String uri = request.getRequestURI(); StringBuffer url = request.getRequestURL(); String contentPath = request.getContextPath(); String remoteAddr = request.getRemoteAddr();
out.println("uri : " + uri + "
"); out.println("url : " + url + "
"); out.println("contentPath : " + contentPath + "
"); out.println("remoteAddr : " + remoteAddr + "
");out.println(""); out.println(""); }
}`