以前Servlet日記(1999/02/02)で、画像ファイルを出力するservletを作成しました。そこでは画像データをFileInputStreamから1バイトずつ読み込んでいましたが、BufferedInputStreamというのがあることを知り、書き直してみました。単なる書き直しではなく、Webブラウザに応じて返す画像を変えるようにしています。Navigatorとみなして、それぞれに対応する画像へのURLを含むドキュメントを返します。cmdが含まれる場合、その値をファイル名とみなして、そのファイルの内容を返します。doGet()メソッドを次のように記述しました。HTMLドキュメントを返す処理と画像を返す処理を一つのservletで実現していて、画像を返すservletのURLを生成するために、servlet名をgetRequestURI()メソッドで取り出しています。out.write(c);}本日の教訓ストリームから大量にデータを入力するには、BufferedInputStreamを使おう。Servlet日記(1999/02/21)。