Spring - Request, Response 객체 이해

박진형·2021년 5월 31일
1

Web

목록 보기
2/8

요청, 응답

WAS는 웹 브라우저로부터 Servlet 요청을 받음

  • 요청할 때 가지고 있는 정보를 HttpServletRequest 객체를 생성하여 저장.
  • 웹에 브라우저에게 응답을 보낼 때 사용하기 위해 HttpServletResponse객체를 생성.
  • 생성된 객체를 서블릿에게 전달.

HttpServletRequest

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

HttpServletResponse

  • WAS는 어떤 클라이언트가 요청을 보냈는지 알고있고, 해당 클라이언트에게 응답을 보내기 위한 HttpServletResponse 객체를 생성하여 서블릿에게 전달.
  • 서블릿은 해당 객체를 이용하여 Content type, 응답코드, 응답 메시지 등을 전송.

헤더 정보 읽어들이기

  • 웹 브라우저가 요청정보에 담아서 보내는 header값을 읽어 들여 브라우저 화면에 출력.
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		
		out.println("<html><head><title>form></title></head><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></html>");
	}

클라이언트가 요청했을 때 가지고 들어온 헤더의 정보를 이런식으로 출력할 수 있다.

파라미터 읽어 들이기

  • URL 주소의 파라미터 정보를 읽어 들여 브라우저 화면에 출력할 수 있다.
  • http://localhost:8080/.../Param ?name=park&age=26
  • 위와 같이 '?' 이후 파라미터 이름, 값을 URL을 통해 전달 할 수있고 여러개를 전달할 시 '&'로 구분
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<html><head><title>form></title></head><body>");
		String name = request.getParameter("name");
		String age  = request.getParameter("age");
		out.println("name : " + name + "<br>");
		out.println("age : " + age + "<br>");
		out.println("</body></html>");
	}

그 외의 요청정보 출력

  • request 객체에는 다양한 정보를 얻을 수 있는 함수들이 있다.
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		out.println("<html><head><title>form></title></head><body>");
		String uri = request.getRequestURI();
		StringBuffer url = request.getRequestURL();
		String contentPath = request.getContextPath();
		String remoteAddr = request.getRemoteAddr();
		
		out.println("uri : " + uri + "<br>");
		out.println("url : " + url + "<br>");
		out.println("ContentPath : " + contentPath + "<br>");
		out.println("remoteAddr : " + remoteAddr + "<br>");
		out.println("</body></html>");
	}

0개의 댓글