スキップしてメイン コンテンツに移動

投稿

ラベル(HttpServletResponse)が付いた投稿を表示しています

JavaのServlet内で他のURLから取得したデータをそのまま出力するコード

JavaのServlet内で他のURLからデータを取得してそのまま、レスポンスを出力するためのコードサンプルです。 使っているのはJavaの標準ライブラリのみなので、移植性は高いと思います。googleの提供しているライブラリやApacheのcommonsのライブラリを使うともう少しコード量は減らせると思います(特に汎用的なcopyメソッドの部分)。 import java.io.IOException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URI; import java.net.URISyntaxException; import java.net.URL; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; public class ServletUtils { private static final int _20K_BYTES = 20480; public static void fetchUrlAndDirectlyRespond(HttpServletResponse resp, String contentType, String urlStr) throws MalformedURLException, IOException, URISyntaxException { URL url = new URI(urlStr).toURL(); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoOutput(true); connection.setRequestMethod("GET"); connection.connect(); ServletOutput