2

301 応答コードを送信する必要があります。以下は、使用しているコードです。

        resp.setContentType("text/html");
        PrintWriter out = resp.getWriter();
        out.println(origReqBody);
        resp.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
        resp.setHeader("Location", homeSiteRedirUrl);

ここで、「origReqBody」が空白の場合は 301 を送信し、「origReqBody」に文字列が含まれている場合はコードが 302 を送信していることを確認しました。

この動作を理解する必要があります。301で遺体を送る必要があります。可能ですか?

編集:printlnの上にsetHeaderとsetStatusを作成した後...

ここに画像の説明を入力

メッセージ 7 と 11 : "origReqBody" が空白の場合 メッセージ 27, 31 : "origReqBody" が空白でない場合

同じ動作... 302 ではなく 301 を期待していました

4

1 に答える 1

2

PrintWriterコンテンツがある場合は実際に出力ストリームに書き込みます。これには、ヘッダーとステータス コードが応答で最初に来るため、ヘッダーとステータス コードをシリアル化する必要があります。したがって、以降のsetStatusandへの呼び出しを無視するだけsetHeaderです。これらの呼び出しを の上に移動するだけで、println期待どおりに機能するはずです。

于 2013-05-30T07:36:33.940 に答える