프로그래밍 언어/자바 웹

서블릿의 응답 처리 방법 & MIME-TYPE

· 코딩마이데이

이번에는 서브릿이 처리한 결과를 클라이언트에게 응답하는 기능을 알아보겠습니다. 서블릿에서 응답을 처리하는 방법은 다음과 같습니다.

1. doGet()이나 doPost() 메서드 안에서 처리합니다.

2. javax.servlet.http.HttpServletResponse 객체를 이용합니다.

3. setContextType()을 이용해 클라이언트에게 전송할 데이터 종류(MIME-TYPE)를 지정합니다.

4. 클라이언트(웹 브라우저)와 서블릿의 통신은 자바I/O의 스트림을 이용합니다.

 

MIME-TYPE

웹 애플리케이션은 클라이언트에 해당하는 웹 브라우저와 서버에 해당하는 서블릿이 서로 데이터를 주고받으면서 실행합니다. 웹 브라우저가 네트워크를 통해 서블릿에 데이터를 보내는 경우 서블릿은 네트워크로부터 데이터를 입력받습니다. 반대로 서블릿이 웹 브라우저로 데이터를 전송하는 경우에는 네트워크로 데이터를 출력합니다. 즉, 네트워크에 대해 자바 I/O 스크림 클래스의 입출력 기능을 이용하면 쉽게 웹 애플리케이션의 네트워크 기능을 구현할 수 있습니다.

서버(서블릿)에서 웹 브라우저로 데이터를 전송하는지 웹 브라우저에 알려줘야 합니다. 그 이유는 웹 브라우저가 전송 받을 데이터의 종류를 미리 알고 있으면 더 빠르게 처리할 수 있기 때문입니다. 따라서 서버(서블릿)에서 웹 브라우저로 데이터를 전송할 때는 톰캣 컨테이너에서 미리 제공하는 여러 가지 전송 데이터 종류 중 하나를 지정해서 웹 브라우저로 전송합니다. 이처럼 톰캣 컨테이너에서 미리 설정해 놓은 데이터 종류들을 MIME-TYPE(마임 타입)이라고 합니다.

 

서버(서블릿)에서 자바 I/O의 스트림 클래스를 이용하여 웹 브라우저로 데이터를 전송할 때는 MIME-TYPE을 설정해서 전송할 데이터의 종류를 지정합니다.

다음은 MIME_TYPE으로 지정하는 예입니다.

  • HTML로 전송 시: text/html
  • 일반 텍스트로 전송 시: text/plain
  • XML 데이터로 전송 시: application/xml

웹 브라우저는 기본적으로 HTML만 인식하므로 서블릿에서 전송하는 대부분의 데이터는 MIME_TYPE을 text/html로 지정합니다.

이 외 톰캣 컨테이너에서는 주로 사용하는 데이터 종류를 MIME-TYPE으로 지정해 놓고 있으므로 서블릿에서 종류를 지정해서 사용하면 됩니다. 더 나아가 새로운 종류의 데이터를 저장하고 싶다면 CATALINA_HOME\conf\web.xml에 추가하면 됩니다.

톰캣 컨테이너의 web.xml에 정의된 여러 가지 MIME-TYPE