본문 바로가기
컴퓨터과학[3-2]/J.S.P

JSP - [제5강] 요청과 응답

by boolean 2016. 7. 21.
728x90

JSP - [제5강] 요청과 응답

request 객체, response 객체

JSP 용어정리

  • Request 객체
    JSP 페이지에서 선언하지 않고 사용할 수 있는 내장 객체의 하나이다. 클라이언트의 요청을 표현한 객체로서 클라이언트가 전달하는 파라미터, 요청 헤더, URI와 같은 정보를 가지고 있다. 서블릿이 실행될 때, 컨테이너가 request와 response 객체를 만들어 서비스 메소드에(doGet()이나 doPost())에 인자로 전달한다.
  • response 객체
    request 객체와 마찬가지로 JSP 페이지에서 선언하지 않고 사용할 수 있는 내장 객체의 하나이다. 응답 헤더와 응답 몸체를 만들기 위해 사용된다.
  • 요청 헤더
    클라이언트에서 서버에게 보내는 요청 메시지는 시작 라인, 요청 헤더, 그리고 요청 몸체로 구성된다. 요청 헤더는 라인당 하나의 “필드이름:값”으로 구성되며 요청에 관한 부가 정보와 클라이언트 자체에 관한 정보를 전달하기 위한 부분이다. 요청 URI는 시작 라인에 표현된다.
  • 응답 헤더
    서버가 요청 메시지를 받아 해석한 후 응답 메시지를 보내야 한다. 응답 메시지는 상태 코드를 나타내는 시작 라인, 응답 헤더, 응답 몸체로 구성된다. 서버는 응답 헤더를 통해 응답에 관한 부가 정보를 보낼 수 있는데 서버에 관한 정보나 리소스 접근 방법에 관한 정보 등을 포함한다.
  • GET과 POST전송 방식
    HTTP 요청 방식은 9가지가 있으며 요청 대상에 대한 처리 방식을 의미하는 것으로 GET과 POST가 가장 많이 사용된다. GET 방식은 지정된 리소스에 대한 정보를 얻고자(get)할 때 사용되는 기본 방식이다. 데이터를 전송할 때는 URL에 쿼리 문자열을 붙여 전달한다. POST 방식은 HTML 폼을 이용해 데이터를 전달할 때 많이 사용된다. 요청 몸체에 데이터를 담아 전달하는 방식으로 GET 방식에 비해 정보에 대한 노출이 없고 데이터 크기에 제한이 없다.

요점정리

  1. request 객체는 내장 객체의 하나로서 클라이언트 요청에 관한 정보를 가지고 있다. 따라서 request 객체는 클라이언트/서버의 정보, 클라이언트가 전달하는 데이터, 요청 헤더 등의 읽기 기능을 제공한다.
  2. 웹 브라우저는 GET 방식과 POST 방식 중 한 가지를 이용해서 파라미터를 전송한다. 데이터를 전송할 때 GET은 요청 URL에 전송할 데이터를 붙여서 전송하는 방식이고, POST 방식은 요청 몸체에 파라미터를 넣어 전송한다.
  3. 클라이언트로부터 전송된 파라미터가 하나의 값을 가질 때는 값을 읽기 위해 request.getParameter() 메서드를 사용하고, 여러 개의 값을 가질 수 있다면 getParameterValues() 메서드를 사용하여야 한다.
  4. 톰캣에서 GET 방식으로 전달된 파라미터를 읽을 때 사용할 charset은 server.xml 파일에서 <Connector> 태그의 'URIEncoding' 속성의 값으로 직접 지정하거나, <Connector> 태그의 'useBodyEncodingForURI' 속성의 값을 'true'로 지정한 후 JSP 페이지에서 request.setCharacterEncoding() 메서드를 이용하여 charset을 지정한다.
  5. 요청 헤더는 웹 브라우저가 웹 서버에 요청 정보를 보낼 때 데이터와 함께 전송되는 추가적인 정보로서, request 객체는 요청 헤더의 내용을 읽어 오는 메서드를 제공한다.
  6. response 객체는 내장 객체의 하나로 웹 서버가 클라이언트에게 보낼 응답을 만들 때 사용한다. response 객체를 이용하여 다른 페이지로 이동, 상태 코드 설정, 응답 헤더 설정, 쿠키 추가 등을 할 수 있으며 응답 몸체를 만들기 위한 출력 스트림을 얻을 수 있다.
  7. 응답 헤더는 웹 서버가 웹 브라우저에 요청에 대한 응답을 전송할 때 데이터와 함께 전송되는 추가 정보로서, response 객체는 응답 헤더에 데이터를 설정하는 메서드를 제공한다.

연습문제

  • 연습문제1
    request 객체에 대한 설명이다. 잘못된 것은?
    답을 체크하세요
    정답 :
    해설 :
    request 객체는 서비스 메소드에 인자로 전달되며 유형은 HttpServletRequest 이다. 응답을 만들 때 사용되는 객체는 response 객체이다.
  • 연습문제2
    HTTP 요청 방식 중 GET과 POST에 관한 설명이다. 잘못된 것은?
    답을 체크하세요
    정답 :
    해설 :
    HTML 폼을 사용해도 GET 방식의 전송이 가능하다. 다음과 같다.
    <FORM ACTION="form_process.jsp" METHOD="GET">
    이때 폼에 입력된 데이터는 URL 뒤에 붙어 전달된다.
  • 연습문제3
    캐시를 사용하여 HTTP 요청을 처리할 수 있다면 여러 장점이 있다. 잘못된 것은?
    답을 체크하세요
    정답 :
    해설 :
    내용 변경이 빈번한 웹 페이지 요청에 캐시를 사용하게 되면 잘못된 응답이 클라이언트에게 전달될 수 있다.
  • 연습문제4
    다음과 같은 기능을 할 수 있는 내장 객체는 무엇인가?
    응답 헤더의 설정, 상태 코드의 설정, 다른 페이지로의 포워딩
    답을 체크하세요
    정답 :
    해설 :
    application은 웹 어플리케이션에 대한 정보의 관리 기능을 가지는 객체이며 page는 JSP 페이지를 구현한 클래스의 인스탄스이다.
    연습문제5
    페이지 이동을 위한 response.sendRedirect(URL)에 관한 설명으로 잘못된 설명은?
    답을 체크하세요
    정답 :
    해설 :
    sendRedirect()를 수행하면 일단 클라이언트로 응답이 가며, 이때 응답 코드는 301이다. 따라서 그 전에 이미 응답 헤더가 클라이언트로 전송했다면 예외가 발생한다. <jsp:forward>는 교재 7장에 나오는데 클라이언트와 무관하게 이동이 일어난다.



댓글