プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

JSPでHTTPステータスコード(エラーコード)をブラウザに送信する方法

JSPでWebアプリケーションを開発していると、クライアントのブラウザに対して特定のHTTPステータスコード(エラーコード)を明示的に返したいケースがあります。そのような場合に活用できるのが、response暗黙オブジェクトのsendError()メソッドです。

407エラーコードを送信するサンプルコード

以下の例では、407番のエラーコードをクライアントのブラウザに送信しています。このコードを実行すると、ブラウザには「Need authentication!!!」というメッセージが表示されます。

<html>
   <head>
      <title>Setting HTTP Status Code</title>
   </head>
   <body>
      <%
         // Set error code and reason.
         response.sendError(407, "Need authentication!!!" );
      %>
   </body>
</html>

実行結果

上記のコードを実行すると、次のような出力が得られます。

HTTP Status 407 - Need authentication!!!

type Status report

message Need authentication!!!

description The client must first authenticate itself with the proxy (Need authentication!!!).

Apache Tomcat/5.5.29

ポイント解説

sendError()メソッドは、第1引数にステータスコード、第2引数にその理由を示すメッセージ文字列を指定します。このメソッドを呼び出すと、サーバーは指定されたステータスコードとともに、デフォルトのエラーページ(またはweb.xmlでカスタマイズされたエラーページ)をクライアントへ返します。

なお、407は「Proxy Authentication Required(プロキシ認証が必要)」を意味するステータスコードで、クライアントがプロキシサーバーとの認証を先に行う必要があることを伝えるために使用されます。同様の手順で、404や500など、他のHTTPステータスコードも自由に送信できます。

  1. Windowsメールの送受信エラー0x80072f89を解消する3つの対処法

    エラーコード0x80072f89とはエラーコード0x80072f89は、Windowsのメールアプリで新しいメールを送受信できなくなった際に表示されることが多いエラーです。主にWindows 10で報告されていますが、Windows 8.1で発生したという報告もわずかにあります。多数のユーザー報告を調査した結果、このエラーはSSL証明書に関する問題に起因している可能性が高いことが判明しました。ただし、これはWindowsメールアプリ内で0x80072f89が表示されている場合に限定されます。この問題でお困りの場合は、以下の手順に沿ってトラブルシューティングを行いましょう。ここでは、同様の状況に

  2. Windows 10でAADSTS50196認証エラーが発生したときの対処法

    Microsoft Storeでアプリの詳細情報を確認しようとした際に、このエラーが発生することがあります。ストアのアプリページにある「詳細情報(Learn more)」をクリックすると、既定のブラウザが起動して指定されたWebサイトへ移動しますが、ページが正しく表示されず、「リクエストの処理中にループが検出されたため、サーバーが操作を終了しました」というエラーメッセージが表示されるのです。 このエラーは繰り返し発生する性質のものであり、オンラインフォーラムでも多数のユーザーから報告されています。ユーザー側の操作ミスが原因ではなく、一部のブラウザに搭載されたセキュリティ強化機能と、マイクロソフ