[부스트코스]웹 프로그래밍 기초 13)Request, Response 객체 이해하기

sameul__choi·2020년 2월 18일
0
post-thumbnail

1. 웹 프로그래밍 기초

13)Request, Response 객체 이해하기


오늘은 Request, Response에 대해서 알아보는 시간을 갖겠습니다.

'요청','응답' 이라는 용어가 많이 등장 했었는데, 이번 학습에서는 클라이언트가 서버에게 보낸 요청을 추상화한 객체 HttpServeletRequest와 서버가 클라이언트에게 응답하기 위한 정보를 추상화한 객체 HttpServeletResponse에 대해서 알아 보겠습니다.


HttpServelRequest

  • WAS는 웹브라우저로부터 Servelet 요청을 받으면,
  1. 요청할 때 가지고 있는 정보를 HttpServeletRequest 객체 생성하여 저장
  2. 웹 브라우저에게 응답을 보낼 때 사용하기 위하여 HttpServeletResponse 객체 생성
  3. 생성된 HttpServeletRequest, HttpServeletResponse 객체를 서블릿에게 전달.

HttpServeletRequest

  • http프로토콜의 request정보를 서블릿에게 전달하기 위한 목적으로 사용
  • 헤더정보, 파라미터, 쿠키, URI, URL 등의 정보를 읽어 들이는 메소드를 가지고 있음.
  • Body의 Stream을 읽어 들이는 메소드를 가지고 있음.

HttpServletResponse

  • WAS는 어떤 클라이언트가 요청을 보냈는지 알고 있고, 해당 클라이언트에게 응답을 보내기 위한 HttpServleResponse객체를 생성하여 서블릿에게 전달.

  • 서블릿은 해당 객체를 이용하여 content type, 응답코드, 응답 메시지등을 전송.


실습코드

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("<html>");
		out.println("<head><title>form</title></head>");
        out.println("<body>");

		Enumeration<String> headerNames = request.getHeaderNames();
		while(headerNames.hasMoreElements()) {
			String headerName = headerNames.nextElement();
			String headerValue = request.getHeader(headerName);
			out.println(headerName + " : " + headerValue + " <br> ");
		}		
		
		out.println("</body>");
		out.println("</html>");
	}

	/**
	 * @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);
	}
}

이번 포스팅에서는 Servelet의 Lifecycle에 대해서 알아보았습니다.
감사합니다 !

0개의 댓글