Content-Typeの設定

サーバサイドでPDFやExcelの帳票を作成してダウンロードさせる際にContent-Typeヘッダを指定しますが、ServletContextのgetMimeType()で取得できます。

    String filename = "output.pdf"
    String contextType = this.getServletContext().getMimeType(filename.toString()); // => "application/pdf"
    response.setContentType(contentType);

恥ずかしながらファイル名によって自分で設定してました。これはweb.xmlの記述から取得されます。Tomcat 6.0であれば、conf/web.xmlに記載があります。いくつか試してみたのですが、csvファイルは記述がないようです(その場合はnullが返されます)。

アプリケーションのweb.xmlに追加することもできます。

<mime-mapping>
	<extension>csv</extension>
	<mime-type>text/csv</mime-type>
</mime-mapping>

使用できるMIME-Type