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 방식에 비해 정보에 대한 노출이 없고 데이터 크기에 제한이 없다.
요점정리
- request 객체는 내장 객체의 하나로서 클라이언트 요청에 관한 정보를 가지고 있다. 따라서 request 객체는 클라이언트/서버의 정보, 클라이언트가 전달하는 데이터, 요청 헤더 등의 읽기 기능을 제공한다.
- 웹 브라우저는 GET 방식과 POST 방식 중 한 가지를 이용해서 파라미터를 전송한다. 데이터를 전송할 때 GET은 요청 URL에 전송할 데이터를 붙여서 전송하는 방식이고, POST 방식은 요청 몸체에 파라미터를 넣어 전송한다.
- 클라이언트로부터 전송된 파라미터가 하나의 값을 가질 때는 값을 읽기 위해 request.getParameter() 메서드를 사용하고, 여러 개의 값을 가질 수 있다면 getParameterValues() 메서드를 사용하여야 한다.
- 톰캣에서 GET 방식으로 전달된 파라미터를 읽을 때 사용할 charset은 server.xml 파일에서 <Connector> 태그의 'URIEncoding' 속성의 값으로 직접 지정하거나, <Connector> 태그의 'useBodyEncodingForURI' 속성의 값을 'true'로 지정한 후 JSP 페이지에서 request.setCharacterEncoding() 메서드를 이용하여 charset을 지정한다.
- 요청 헤더는 웹 브라우저가 웹 서버에 요청 정보를 보낼 때 데이터와 함께 전송되는 추가적인 정보로서, request 객체는 요청 헤더의 내용을 읽어 오는 메서드를 제공한다.
- response 객체는 내장 객체의 하나로 웹 서버가 클라이언트에게 보낼 응답을 만들 때 사용한다. response 객체를 이용하여 다른 페이지로 이동, 상태 코드 설정, 응답 헤더 설정, 쿠키 추가 등을 할 수 있으며 응답 몸체를 만들기 위한 출력 스트림을 얻을 수 있다.
- 응답 헤더는 웹 서버가 웹 브라우저에 요청에 대한 응답을 전송할 때 데이터와 함께 전송되는 추가 정보로서, response 객체는 응답 헤더에 데이터를 설정하는 메서드를 제공한다.
연습문제
- request 객체에 대한 설명이다. 잘못된 것은?
- 정답 :
-
③
- 해설 :
- request 객체는 서비스 메소드에 인자로 전달되며 유형은 HttpServletRequest 이다. 응답을 만들 때 사용되는 객체는 response 객체이다.
- HTTP 요청 방식 중 GET과 POST에 관한 설명이다. 잘못된 것은?
- 정답 :
-
④
- 해설 :
- HTML 폼을 사용해도 GET 방식의 전송이 가능하다. 다음과 같다.
<FORM ACTION="form_process.jsp" METHOD="GET">
이때 폼에 입력된 데이터는 URL 뒤에 붙어 전달된다.
- 캐시를 사용하여 HTTP 요청을 처리할 수 있다면 여러 장점이 있다. 잘못된 것은?
- 정답 :
-
①
- 해설 :
- 내용 변경이 빈번한 웹 페이지 요청에 캐시를 사용하게 되면 잘못된 응답이 클라이언트에게 전달될 수 있다.
- 다음과 같은 기능을 할 수 있는 내장 객체는 무엇인가?응답 헤더의 설정, 상태 코드의 설정, 다른 페이지로의 포워딩
- 정답 :
-
②
- 해설 :
- application은 웹 어플리케이션에 대한 정보의 관리 기능을 가지는 객체이며 page는 JSP 페이지를 구현한 클래스의 인스탄스이다.
- 정답 :
-
③
- 해설 :
- sendRedirect()를 수행하면 일단 클라이언트로 응답이 가며, 이때 응답 코드는 301이다. 따라서 그 전에 이미 응답 헤더가 클라이언트로 전송했다면 예외가 발생한다. <jsp:forward>는 교재 7장에 나오는데 클라이언트와 무관하게 이동이 일어난다.
페이지 이동을 위한 response.sendRedirect(URL)에 관한 설명으로 잘못된 설명은?
'컴퓨터과학[3-2] > J.S.P' 카테고리의 다른 글
JSP - [제7강] 모듈화된 JSP 페이지 만들기 (0) | 2016.07.21 |
---|---|
JSP - [제6강] 내장 객체와 Scope (0) | 2016.07.21 |
JSP - [제4강] JSP 동작 원리 (0) | 2016.07.21 |
JSP - [제3강] JSP 개요 (0) | 2016.07.21 |
JSP - [제2강] 개발환경 설정하기 (1) | 2016.07.21 |
댓글