finerss's world!

HttpServletResponse +1
HttpServletRequest

HttpServlet의 service() 메소드는 HttpServletRequest와 HttpServletResponse를 인자로 한다.
service(HttpServletRequest,HttpServletResponse)

service() 메소드는 HTTP Request의 HTTP 메소드(GET,POST 등)에 따라 doGet()을 호출할지, 아니면 doPost()를 호출할지 결정
HTTP Request 메소드는 GET,POST,HEAD,TRACE,PUT,DELETE,OPTION,CONNECT 총 8가지가 있다.

Post 요청에는 몸체가 있다. GET 요청에는 몸체가 없다. GET파라미터는 URL의 실제 주소 뒤에 연결된다. 보통 이를 쿼리스트링 이라고 부른다.

HTML 폼에 "method=POST" 를 코딩하지 않았다면  이 요청은 POST가 아니라 GET이다.
즉 디폴트는 HTTP GET이다

Request 객체에서 파라미터를 뽑아내기 위하여 getParameter("파라메터이름") 메소드를 호출한다
리턴값은 언제나 String이다

이외에 Request 객체에서 헤더 정보, 쿠키정보, 세션정보, 쿼리 스트링, 입력스트림 관련 메소드를 사용할수있다.
이메소드에관한건 뒤에 서서히 살펴보자!

HttpServletResponse

클라이언트로 데이터를 보내기 위하여 Response 객체를 사용한다.

Response 객체(HttpServletResponse)에서 가장 많이 사용하는 메소드는 setContentType()과 getWriter()이다.

많은 개발자들이 착각하고 있는 것중 하나가 GetPrintWriter()이라고 생각하는데 getWriter()이 맞다.

getWriter()메소드로 HTML을 작성하는 것과 같은 문자 I/O작업을 한다.

Response 객체로 헤더를 설정하고, 오류를 전송하며 쿠키도 추가할수 있다.

실제 프로젝트에서 HTML응답을 보내기위해 JSP를 사용하지만 JAR파일 같은 바이너리를 전송하기 위해 Response 스트림을 사용한다.

Response에서 바이너리 스트림을 리턴받는 메소드는 getOutputStream이다.

브라우저가 응답으로 들어오는 데이터를 어떻게 핸들링 할지 알려주는 메소드는 setContentType()이다.
일반적으로 컨텐츠 타입은 text/html, application/pdf, image/jpeg 등이 있다.


요청에응답하지 않고, 요청을 다른 URL로 리다이렉트 할수 있다.
이경우 브라우저는 서버에서 정한 URL을 받아 새로운 요청을 보낸다.

리다이렉트와 디스패치는 다르다. 요청을 디스패치하는것은 서버에서 일어나는거고 리다이렉트는 클라이언트에서 일어난다.
디스패치 작업은 서버상에있는 다른 컴포넌트로 작업을 넘기는것이라면 리다이렉트는 완전히 다른 URL로 가라고 브라우저에게 지시하는 것이다


'공부 > Sevlets&JSP' 카테고리의 다른 글

ServletContextListener  (0) 2011.06.27
ServletConfig 와 ServletContext  (0) 2011.06.27
서블릿 생명주기와 API  (0) 2011.06.24
MVC 패턴  (0) 2011.06.24
서블릿 매핑, 배포 서술자(DD, Deployment Descriptor)  (0) 2011.06.23