Servlet日記(1999/02/02)

本日の成果

 前に疑問に思っていた、PrintWriterとServletOutputStreamの違いは、Stefan Zeiger氏のServlet Essentialsによると、charsetを指定するとPrintWriterは漢字コードの変換をしてくれるようです。そのうちためしてみましょ。

 ServletOutputStreamでバイナリデータを出力するservletとして、画像ファイルの内容をそのままブラウザに送るものを作ってみます。

 他の部分は今までと同じで、doGetメソッドを次のようにしました。ファイルからの読み込みとストリームへの書き込みは、Javaの本を見ていてファイル入出力の例を見つけて真似してみました。一応動いているので、間違いではないと思うのですが・・・

{
        int c;

        res.setContentType("image/gif");
        FileInputStream fin = new FileInputStream("c:/abc.gif");
        ServletOutputStream out = res.getOutputStream();

        while ((c = fin.read()) != -1)
                out.write(c);
        out.close();
}

本日の教訓

 servletからの画像出力のような、バイナリ出力には、ServletOutputStreamを使おう。

Servlet日記(1999/02/01) Servlet日記の目次 Servlet日記(1999/02/06)