servletでのresponseの簡単なまとめ

2993 ワード

1.HttpServeretResponse概要サービス()メソッドまたはdoGet()/doPost()を上書きします.これらのメソッドには、要求を表すrequestと応答responseを表す2つのパラメータがあります.サービスメソッドのresponseのタイプはサーブレットResponseであり、doGet/doPostメソッドのresponseのタイプはHttpサーブレットResponseであり、HttpサーブレットResponseはサーブレットResponseのサブインタフェースであり、機能と方法がより強く、今日はHttpサーブレットResponseについて学びます.
2.responseの実行フローservlet中response简单总结_第1张图片 3.Http応答servlet中response简单总结_第2张图片をキャプチャツールでキャプチャするresponseは応答を表すため、このオブジェクトを介してそれぞれHttp応答の応答行、応答ヘッダ、応答体を設定することができる
4.responseによる応答行設定応答行のステータスコード
setStatus(int sc)

5.responseによるレスポンスヘッダの設定
addHeader(String name, String value) 
addIntHeader(String name, int value) 
addDateHeader(String name, long date) 
setHeader(String name, String value) 
setDateHeader(String name, long date) 
setIntHeader(String name, int value)

ここでaddは追加を表し、setは設定を表す
6.responseによる応答体(1)応答体設定テキストの設定
PrintWriter getWriter()

文字ストリームを取得するには、文字ストリームのwrite(String s)メソッドによって文字列をresponseバッファに設定し、Tomcatはresponseバッファの内容をHttp応答に組み立ててブラウザ側に返す.
中国語の文字化けしの設定の問題の原因について:responseバッファのデフォルトの符号化はiso 8859-1で、この符号表には中国語がなくて、responseのsetCharacterEncoding(String charset)を通じてresponseの符号化を設定することができます
しかし、クライアントが文字を正常に表示できない理由を発見しました.responseバッファの符号化をUTF-8に設定しましたが、ブラウザのデフォルトの符号化はローカルシステムの符号化です.私たちは中国語システムなので、クライアントブラウザのデフォルトの符号化はGBKで、ブラウザの符号化を手動で変更することができます.UTF-8です.
また,コードにブラウザ解析ページの符号化方式を指定することもでき,responseのsetContentType(String type)法によりページ解析時の符号化をUTF-8 responseと指定することもできる.setContentType(“text/html;charset=UTF-8”);
上記のコードは、ブラウザがページを解析する際の符号化を指定するだけでなく、setCharacterEncodingの機能も含んでいるので、実際の開発ではresponseを記述するだけでよい.setContentType(“text/html;charset=UTF-8”);ページ出力の中国語文字化けし問題を解決できます.
(2)応答ヘッダ設定バイト
ServletOutputStream  getOutputStream()

バイトストリームが得られ、このバイトストリームのwrite(byte[]bytes)によってresponseバッファにバイトが書き込まれ、Tomcatサーバによってバイト内容からなるHttp応答がブラウザに返される.