Study/JSP

request 와 response

웹은 서버와 클라이언트로 구성되며 서로 간에 HTTP 프로토콜을 기반으로 동작한다.

클라이언트와 웹 서버 사이의 요청에 관련된 정보는 request객체에 저장되어 관리가 되며,

응답에 관련된 정보는 response 객체에 저장되고 관리된다.


request, response는 개발자가 객체를 별도로 생성하지 않아도 JSP에서 바로 사용 할 수 있는 객체 라는 공통점을 가지고 있다.

 

JSP 내장객체 로, request, response, out, page, config, application, pageContext, exception, session 이 있다.

 

request - javax.servlet.http.HttpServletRequest 객체

 

클라이언트 요청시에 생성이 되며, 요청에 대한 처리가 완료 되면 소멸 된다.

컨테이너는 요청된 데이터를 바탕으로 HttpServletRequest 객체를 만들어서 전달 해 준다.

 

사용자가 입력한 요청 데이터를 받아오는 작업의 메서드

String getParameter(String name) :  name(변수이름, 파라미터)의 값을 가져온다.

 

request 객체는 최종적으로 클라이언트에게 응답되기 전 까지는 계속 유지된다.

하나의 요청을 처리하는 스레드에서 용도를 다할 때 까지 계속 공유되는 객체이기 때문에 <jsp:forward> 와 같이 다른페이지로 흐름 제어를 넘기는 경우에도 같은 request객체가 유지가 된다.

<jsp:param> 태그로 파라미터를 넘겨주는 것과 동일한 효과이지만 정보의 묶음인 '객체'의 전달이 가능하다. 서블릿에서는 액션 태그가 없기 때문에, Atrribute 를 이용한 메서드를 통해 추가적인 객체를 request에 담아줄 수 있다.

 

🔎 Parameter는 사용자가 보낸 정보고, Attribute는 개발자가 필요에 의해 첨부된 별도의 객체 모음 이다.

 

String setAttribute(String name, Object o) : request 객체에 'name'이름의 Object 객체를 첨부 함.

Object getAttribute(String name) : request 객체에 첨부된 'name' 이름의 값을 가져옴

 


 

response - javax.servlet.http.HttpServletResponse 객체

클라이언트 요청시 생성이 되며, 요청에 대한 처리가 완료되면 소멸 된다.

 

클라이언트에게 회신을 보내주는 응답 객체이다. 출력 자체는 HTML 코드나 out 객체를 통해 하면 되지만, 헤더 정보에 추가로 내용을 넣거나 쿠키 전송 혹은 클라이언트의 페이지가 쿼리스트링을 가지고 다른페이지로 이동 할 수 있게끔 하는 용도로 사용 된다.

 

주로 클라이언트의 페이지를 리다이렉트 시킬 때 response 응답 객체를 사용한다.

🔎 클라이언트가 요청한 페이지에서 추가적인 파라미터와 함께 다른 페이지로 전환 시키는 것을 리다이렉트라고 한다.

액션태그의 forward와 다른점은 forward는 자바 내부에서 URI를 찾아 다른 페이지로 넘어가 수행한 뒤 결과를 회신 하는 것이고, response의 리다이렉트는 해당 페이지가 클라이언트에게 응답객체를 보내 다시 클라이언트 측에서 전송된 URI로 자동 접속 하도록 만든다는 점이다.

URI에는 쿼리스트링을 포함 할 수 있으므로 클라이언트가 호출 시에 넘겨줘야 할 파라미터를 같이 보낼 수 있다.

 

void sendRedirect(String location) : 지정된 URI를 클라이언트 측에서 재호출 하도록 함

 

 


참고사이트

codevang.tistory.com/198?category=844273