008-JavaWeb学習応答

免責事項:私の記事はすべて、Mad God Talk、Shang Silicon Valley、Dark Horse Programmerなどを含むオンライン教育ビデオを編集したものであり、商用利用せずに参考資料として使用されています。大多数のネット市民を参照してください。スプレーしないでください、ありがとうございました。(Webサイトにより、一部のコード文字に問題がある場合があります。コードを読み取るときは、下の図に対応することをお勧めします)
Webサーバーはクライアントのhttp要求を受信した後、この要求の代表を作成します。要求されたHttpServletRequestオブジェクトと応答を表すHttpServletResponseオブジェクト。クライアントリクエストによって送信されたパラメータを取得する場合は、HttpServletRequestオブジェクトを見つけます。クライアントへの情報に応答する場合は、HttpServletResponseオブジェクトを見つけるので、今日はHttpServletResponseオブジェクトを分析します。
1. HttpServletResponseオブジェクトメソッドの単純な分類は
、ブラウザにデータを送信する役割を果たします
。ServletOutputStreamgetOutputStream()はIOExceptionをスローします。

PrintWriter getWriter()はIOExceptionをスローします。
これらの2つのメソッドは、
応答ヘッダーをブラウザーに送信する役割を担う親クラスのメソッドを継承し
ます。voidsetCharacterEncoding(String var1);

void setContentLength(int var1);

void setContentLengthLong(long var1);

void setContentType(String var1);
これらの4つのメソッドは、その親クラスから継承され
ますvoid setDateHeader(String var1、long var2);

void addDateHeader(String var1、long var2);

void setHeader(String var1、String var2);

void addHeader(String var1、String var2);

void setIntHeader(String var1、int var2);

void addIntHeader(String var1、int var2);

void setStatus(int var1);
前的方法
响測定态码:
int SC_CONTINUE = 100;
int SC_SWITCHING_PROTOCOLS = 101;
int SC_OK = 200;
int SC_CREATED = 201;
int SC_ACCEPTED = 202;
int SC_NON_AUTHORITATIVE_INFORMATION = 203;
int SC_NO_CONTENT = 204;
int SC_RESET_CONTENT = 205;
int SC_PARTIAL_CONTENT = 206;
int SC_MULTIPLE_CHOICES = 300;
int SC_MOVED_PERMANENTLY = 301;
int SC_MOVED_TEMPORARILY = 302;
int SC_FOUND = 302;
int SC_SEE_OTHER = 303;
int SC_NOT_MODIFIED = 304;
int SC_USE_PROXY = 305;
int SC_TEMPORARY_REDIRECT = 307;
int SC_BAD_REQUEST = 400;
int SC_UNAUTHORIZED = 401;
int SC_PAYMENT_REQUIRED = 402;
int SC_FORBIDDEN = 403;
int SC_NOT_FOUND = 404;
int SC_METHOD_NOT_ALLOWED = 405;
int SC_NOT_ACCEPTABLE = 406;
int SC_PROXY_AUTHENTICATION_REQUIRED = 407;
int SC_REQUEST_TIMEOUT = 408;
int SC_CONFLICT = 409;
int SC_GONE = 410;
int SC_LENGTH_REQUIRED = 411;
int SC_PRECONDITION_FAILED = 412;
int SC_REQUEST_ENTITY_TOO_LARGE = 413;
int SC_REQUEST_URI_TOO_LONG = 414;
int SC_UNSUPPORTED_MEDIA_TYPE = 415;
int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
int SC_EXPECTATION_FAILED = 417;
int SC_INTERNAL_SERVER_ERROR = 500;
int SC_NOT_IMPLEMENTED = 501;
int SC_BAD_GATEWAY = 502;
int SC_SERVICE_UNAVAILABLE = 503;
int SC_GATEWAY_TIMEOUT = 504;
int SC_HTTP_VERSION_NOT_SUPPORTED = 505;
2.一般的なアプリケーション
1)ブラウザにメッセージを出力します
2)
ファイルをダウンロードする手順ダウンロードしたファイルのパスを取得するには
ダウンロードファイル名は
、ブラウザがダウンロードをサポートできるように設定されていますファイル
がダウンロードされたファイル入力ストリーム

取得して、OutputStreamオブジェクトを取得するためのバッファを作成します
FileOutputStreamストリームバッファは
、クライアント
3へのOutputStream出力データバッファを使用してバッファに書き込まれます。これにより、実験フレームが生成され
ます1)新しいMavenプロジェクトを作成しますjavaweb-応答は、webappテンプレートを使用して作成されます。競合を防ぐために、ローカルウェアハウス内のすべての依存jarパッケージを削除してから、IDEAに再ダウンロードさせることをお勧めします
2)親プロジェクトのpom.xmlを構成し、サーブレット依存jarパッケージをインポートします
008-JavaWeb学習応答
3)ここにプロジェクトの下で、新しいMavenモジュール応答を作成し、webappテンプレートを使用して作成し、ディレクトリとマークを追加します。構造を図
008-JavaWeb学習応答
3に示します。前の手順に従って、応答モジュールの下のpom.xmlを変更して作成します。モジュールのクリーンアップ
008-JavaWeb学習応答
4)tomcatサーバーの構成
008-JavaWeb学習応答
008-JavaWeb学習応答
5)応答モジュールの下のsrc-> main-> webapp-> WEB-INFの下のweb.xmlを変更します
008-JavaWeb学習応答
6)webappディレクトリにindex.jspやその他のファイルがない場合は、下の図に示すように、自分で手動で作成できます
008-JavaWeb学習応答
。7)tomcatを起動し、構成が成功したかどうかをテストします。
008-JavaWeb学習応答
上の図が表示されたら、すべて問題ありません
4. javaディレクトリにcom.kuang.servletパッケージを作成し、以下にFileServletファイルを作成します
008-JavaWeb学習応答
。5 上記の分析に従ってコードの記述を開始し、resourcesディレクトリに「play.png」ファイルを配置します。これを行うことが目標です。 Servletを介してファイルにアクセスした後、ローカルハードディスクにダウンロードできます
//。ダウンロードしたファイルのパスを取得するには
String realPath = this.getServletContext()。getRealPath( "/ WEB-INF / classes / play.png");
System.out .println( "ダウンロードされたファイルのパス:" + realPath);
// 2。ダウンロードされたファイル名
StringfileName = realPath.substring(realPath.lastIndexOf( "\")+ 1);
// 3。ブラウザーをに設定します。必要なファイルのダウンロードをサポートします。ここでは、ファイル名が中国語であるため、ファイル名はURLEncoder.encode
resp.setHeader( "Content-Disposition"、 "attachment; filename =" + URLEncoder.encode(fileName、 ")でエンコードする必要があります。 utf-8 "));
// 4。


int len = 0;
バイト[]バッファ=新しいバイト[1024];
// 6。获取出力ストリーム対象
ServletOutputStreamout = resp.getOutputStream();
// 7。将たFileOutputStream流写入到バッファ缓冲区、使用のOutputStream将缓冲区中的数据输出到客户端
ながら((LEN = in.read(バッファ))> 0){
out.write(バッファ、0、 len);
}
in.close();
out.close();
008-JavaWeb学習応答
修改web.xml
<servlet>
<servlet-name> filedown </ servlet-name>
<servlet-class> com.kuang.servlet.FileServlet </ servlet-class>
</ servlet>
<servlet-マッピング>
<servlet-name> filedown </ servlet-name>
<url-pattern> / down </ url-pattern>
</ servlet-mapping>
008-JavaWeb学習応答
tomcatを起動して入力すると
008-JavaWeb学習応答
008-JavaWeb学習応答
、Webアプリケーション上のファイルをローカルハードドライブにダウンロードできます。
5.応答検証コードの実装
検証コードを実現する方法は?2つの方法があります。1つはフロントエンド実装を使用する方法、もう1つはバックエンド実装です。画像を生成するにはjava imageクラスを使用する必要があります。ここでは、主にバックエンド実装について説明します。
ImageServletファイル
008-JavaWeb学習応答
作成するdoGetコードは次のとおりです。//3
秒ごとにブラウザを自動的に更新する方法
resp.setHeader( "refresh"、 "3");
//メモリに画像を作成する
BufferedImageimage = new BufferedImage(80、20 、 BufferedImage.TYPE_INT_RGB);
//画像を取得
Graphics2Dg =(Graphics2D)image.getGraphics();
//画像の背景色を設定
g.setColor(Color.white);
g.fillRect(0,0,80,20);
//画像にデータを書き込む
g.setColor(Color.BLUE);
g.setFont(new Font(null、
Font.BOLD 、20)); g.drawString(makeNum()、0,20);
//ブラウザに通知、このリクエストは画像として開かれます
resp.setContentType( "image / jpeg");
// Webサイトにはキャッシュがあり、ブラウザは
resp.setDateHeader( "expires"、-1);
resp.setHeader( "Cache-Control "、
resp.setHeader(「プラグマ」、「キャッシュなし」);
//ブラウザに絵を書く
ImageIO.write(画像、「JPG」、resp.getOutputStream());
008-JavaWeb学習応答
次のように乱数を生成する方法のコードは次のとおりです。
プライベート文字列makeNum(){
ランダムランダム= new Random();
文字列num = random.nextInt(9999999)+ "";
StringBuffer sb = new StringBuffer();
for(int i = 0; i <7-num.length(); I ++){
sb.append( "0");
}
NUM = sb.toString()+ NUM;
戻りNUM;
}
008-JavaWeb学習応答
変更web.xmlおよびサーブレットエントリを追加し、次のようにコードがある
<サーブレット>
<サーブレット名>画像</サーブレットは-name>
<servlet-class> com.kuang.servlet.ImageServlet </ servlet-class>
</ servlet>
<servlet-mapping>
<servlet-name> image </ servlet-name>
<url-pattern> / img </ url-pattern>
</ servlet-mapping>
008-JavaWeb学習応答
tomcatを起動し、http:// localhost:8080 / resp / imgと入力して、結果を表示します
008-JavaWeb学習応答

おすすめ

転載: blog.51cto.com/12859164/2545411