サーブレットの応答(A)

HTTPプロトコル:彼が基づいて、要求と応答モード

レスポンス組成

  1. ステートライン

  2. レスポンスヘッダ

  3. 空行

  4. レスポンスボディ

ステートライン

ステータスライン - > HTTP +バージョン、ステータスコード/ステータス+状態説明

ステータスコード:顧客の要求の状態を知らせる、成功または失敗

100〜199:要求が出されたが、応答受信しませんでした200〜299:要求識別し、成功応答300〜399:リソースが他の場所で削除要求に必要されていることを意味し、クライアントによって引き起こされていること:499に400を問題599から500:サーバー側の問題であり、

ステータス説明:ステータスコードの記述

一般的なステータスコード

一般的なステータスコード ステータス説明
200 正常な応答、要求が成功したことを示します
302 リソースが削除されている、あなたはどこか別の要求を移動する必要があります
304 リソースへのアクセスがキャッシュから取得される表します
400 問題のクライアントから送信されたパラメータ
404 一般的に誤記リソース/ URLを見つけることができません
405 誤っ要求
500 サーバー側の異常
502 サーバーのダウンタイム
コンフィギュレーションのステータスコードファイル

役割:露光コード情報を防ぐために

<! - web.xmlファイルに書かれた- > 
<! - 構成エラー・ページ- > 
    < エラーページ> 
        <! - ステータスコード- > 
        < エラーコード> 500 </ エラーコード> 
        <! - 制定されたエラーページに移動- > 
        < LOCATION > /html/fuwei.html </ LOCATION > 
    </ エラーページ>
ステータスコードを設定します
// (知っている)を設定ステータスコード 
    resp.setStatus(208 ); 
    resp.setStatus(HttpServletResponse.SC_NOT_FOUND); 
// カスタム記述(それを知っている) 
    resp.sendError(404、「URL異常チェックのURLアドレスが正しいですか「)。

 

コンテンツのニーズがキャッシュされるべきかどうか、バックボリュームサイズのクラス、サーバ応答時間のバージョン(例えば、TXT、MP4 ...の送信など)を設定レスポンスヘッダタイプ。

全体的に、メッセージは、クライアント・サーバ・て送信バックを伝えることです。

一般的なレスポンスヘッダ
  1. コンテンツディスポジション:フォームは、クライアントがオープンにファイルをダウンロードした告げます

アプリケーション - ファイルのダウンロード

保護された のdoPost(REQはHttpServletRequestを、HttpServletResponseのRESP)スローServletExceptionが、IOExceptionが{
     // 最初のステップを:ダウンロードしたファイルの名前を取得する 
        文字列fileNameに= req.getParameter( "ファイル名" );
     // ステップ2:ファイル拡張子を取得 
        文字列を= fileName.substring EXT(fileName.lastIndexOf( "" ));
     // 第三段階:GET A UUID(新しい名前をファイルをダウンロードするために) 
        文字列newfilename = UUID.randomUUID()のtoString();.
     // ステップ4:レスポンスヘッダのContent-処分を設定します。フォームは、ダウンロードしたファイルを開くには、クライアントに指示します 
        resp.setHeader(「コンテンツ・処分」、「添付ファイルを、ファイル名=」+ newfilename + EXT);
     // ステップ5:ダウンロードファイルを取得物理パス
        DownPath =文字列この .getServletContext()getRealPath( "DownloadImage /" +。ファイル名);
     // ステップ6:完全なダウンロード
         // ファイルの作成 
        ファイルファイルを= 新しい新しいファイル(downPath);
         // 入力ストリーム 
        =でのInputStream はnull ;
         // の出力ストリーム得る 
        ServletOutputStreamをOUT = )resp.getOutputStreamを(;
         試み{  = 新しい新規のFileInputStream(ファイル);
             // ストリームバッファ
            バイト [] = BUF 新しい新しい バイト [1024 ];
             //读取字节的长度
            INT長さ= 0 // 读取文件
            ながら(!(長さ= in.read(BUF、0、buf.length))= - 1 ){ 

                out.write(BUF、 0 、buf.length)。
            } 
            out.flush()。

        } キャッチ(例外e){ 
            e.printStackTrace(); 
        } 最後に{ 

            場合(!で= NULL ){ 
                in.close()。
            } 
            もし(!アウト= NULL ){ 
                out.close()。
            } 
        } 
    }

 

 

おすすめ

転載: www.cnblogs.com/-Archenemy-/p/12657468.html