Java HttpResponseの詳細
1892 ワード
HttpServiceletクラスには、2つのパラメータHttpRequestとHttpResponseが必要です.例えばdoGetメソッド
ここでまずHttpResponseを紹介します.HttpResponseオブジェクトの目的は、ブラウザがWebアプリケーションに送信するHTTP要求に応答して、Webアプリケーションがブラウザに返信するHTTP応答を示すことである.
HttpResponseオブジェクトにはいろいろな方法がありますが、ここで最もよく使われる方法を紹介します.他の方法に興味があればJavaDocで読むことができます.
Writing HTML
PrintWriterを取得してHttpResponseオブジェクトからhtmlをブラウザに送信できます.これは例です.
Headers
HttpRequestオブジェクトはリクエストヘッダを取得することができ、HttpResponseはこれらのパラメータを設定する必要があります.例:
Content-Type
このリクエストヘッダは、ブラウザの説明に応答して送信されるコンテンツタイプである.例えば、HTMLのコンテンツタイプはtext/htmlです.例:
テキストを書く
HTMLではなくテキストバックブラウザを作成できます.
Content-Length
Content-Longthはブラウザに応答情報が何バイトであるかを教えます
バイナリデータの書き込み
ブラウザにバイナリデータを書くこともできます.例えば、画像やpdfファイルなどを送信することができます.これならcontentTypeはimage/pngのはずです.バイナリデータを送信するためにresponseからgtWriter()メソッドでは、textタイプを送信するだけなので、Writerが取得されます.出力ストリームでresponseからgetoutputStream()メソッドで出力ストリームを取得します.例:
URLリダイレクト
servletからブラウザに異なるURLをリダイレクトすることができ、リダイレクト時にデータを送信することはできません.例:
protected void doGet(
HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
}
ここでまずHttpResponseを紹介します.HttpResponseオブジェクトの目的は、ブラウザがWebアプリケーションに送信するHTTP要求に応答して、Webアプリケーションがブラウザに返信するHTTP応答を示すことである.
HttpResponseオブジェクトにはいろいろな方法がありますが、ここで最もよく使われる方法を紹介します.他の方法に興味があればJavaDocで読むことができます.
Writing HTML
PrintWriterを取得してHttpResponseオブジェクトからhtmlをブラウザに送信できます.これは例です.
PrintWriter writer = response.getWriter();
writer.write("GET/POST response");
Headers
HttpRequestオブジェクトはリクエストヘッダを取得することができ、HttpResponseはこれらのパラメータを設定する必要があります.例:
response.setHeader("Header-Name", "Header Value");
Content-Type
このリクエストヘッダは、ブラウザの説明に応答して送信されるコンテンツタイプである.例えば、HTMLのコンテンツタイプはtext/htmlです.例:
response.setHeader("Content-Type", "text/html");
テキストを書く
HTMLではなくテキストバックブラウザを作成できます.
response.setHeader("Content-Type", "text/plain");
PrintWriter writer = response.getWriter();
writer.write("This is just plain text");
Content-Length
Content-Longthはブラウザに応答情報が何バイトであるかを教えます
response.setHeader("Content-Length", "31642");
バイナリデータの書き込み
ブラウザにバイナリデータを書くこともできます.例えば、画像やpdfファイルなどを送信することができます.これならcontentTypeはimage/pngのはずです.バイナリデータを送信するためにresponseからgtWriter()メソッドでは、textタイプを送信するだけなので、Writerが取得されます.出力ストリームでresponseからgetoutputStream()メソッドで出力ストリームを取得します.例:
OutputStream outputStream = response.getOutputStream();
outputStream.write(...);
URLリダイレクト
servletからブラウザに異なるURLをリダイレクトすることができ、リダイレクト時にデータを送信することはできません.例:
response.sendRedirect("http://www.baidu.com");