ホームページ  >  記事  >  Java  >  JavaサーブレットでResponseオブジェクトを使用する方法

JavaサーブレットでResponseオブジェクトを使用する方法

WBOY
WBOY転載
2023-06-02 21:11:29998ブラウズ

サーブレット レスポンス

ServletResponse このインターフェイスは、HTTP 応答情報を設定および取得するための一連のメソッドを提供します。 ServletResponse インスタンスは HTTP 応答を表し、この応答には HTML およびその他のコンテンツと、HTTP ステータス コードやヘッダー情報などのステータス情報を含めることができます。

応答本文

ServletResponse インターフェイスを使用すると、応答本文をクライアントに簡単に送信できます。応答本文は HTTP 応答の主要なコンテンツであり、HTML、CSS、JavaScript、テキスト、またはその他のデータ型を使用できます。一般的に使用されるメソッドの一部を次に示します。

  • void setContentType(String type): 応答本文のタイプを設定します。たとえば、HTML コンテンツを返したい場合は、type の値として text/html を使用できます。

  • void setCharacterEncoding(String encoding): レスポンスボディの文字エンコーディングを設定します。たとえば、UTF-8 でエンコードされた HTML コンテンツを返したい場合は、encoding の値として UTF-8 を使用できます。

  • PrintWriter getWriter(): 文字データをクライアントに送信するための PrintWriter インスタンスを取得します。

  • ServletOutputStream getOutputStream(): クライアントにバイト データを送信するための ServletOutputStream インスタンスを取得します。

HTML コンテンツを含む応答をクライアントに送信するサンプル コードを次に示します。

@WebServlet("/example")
public class ExampleServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        response.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Example Servlet</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h2>Hello, world!</h2>");
        out.println("</body>");
        out.println("</html>");
    }
}

上記のコードでは、最初に response.setContentType を使用します。 ("text/html") メソッドは、応答本文のタイプを HTML に設定します。次に、response.setCharacterEncoding("UTF-8") メソッドを使用して、応答本文の文字エンコーディングを UTF-8 に設定します。次に、response.getWriter() メソッドを使用して PrintWriter インスタンスを取得し、次に out.println() メソッドを使用して HTML コンテンツを送信します。クライアント。

応答ヘッダー

HTTP 応答には、応答本文に加えて、応答ヘッダー情報などのメタデータも含めることができます。応答ヘッダー情報は、応答本体タイプ、文字エンコーディング、有効期限など、応答に関する追加情報を提供します。 ServletResponse インターフェイスを使用すると、応答ヘッダー情報を簡単に設定および取得することもできます。一般的に使用されるメソッドを次に示します。

  • void setHeader(String name, String value): 応答ヘッダー情報を設定します。たとえば、Content-Disposition ヘッダー情報を設定する場合は、Content-Dispositionnameattachment の値として使用できます。 filename="example.txt"value の値として使用します。

  • void addHeader(String name, String value): 応答ヘッダー情報を追加します。たとえば、Cache-Control ヘッダーを追加する場合は、Cache-Controlname および no-cache の値として使用できます。 として value の値。

  • void setIntHeader(String name, int value): 応答ヘッダー情報を設定します。値は整数です。たとえば、Content-Length ヘッダーを設定する場合は、Content-Lengthname の値として使用し、ファイル サイズを ## として使用できます。 #value 値。

  • void addIntHeader(String name, int value): 応答ヘッダー情報を追加します。値は整数です。たとえば、Expires ヘッダーを追加する場合は、Expiresname の値として使用し、タイムスタンプを value の値として使用できます。

  • String getHeader(String name): 指定した名前のレスポンスヘッダ情報を取得します。たとえば、Content-Type ヘッダー情報を取得する場合は、Content-Typename の値として使用できます。

  • Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 getHeaders(String name): 指定された名前のすべての応答ヘッダー情報を取得します。たとえば、Set-Cookie ヘッダーを取得したい場合は、name の値として Set-Cookie を使用できます。

  • int getIntHeader(String name): 指定された名前の整数の応答ヘッダー情報を取得します。たとえば、Content-Length ヘッダー情報を取得する場合は、Content-Lengthname の値として使用できます。

応答ステータス

応答ステータスは、HTTP 応答のステータス コードを指し、サーバーによるリクエストの処理結果を示します。

ServletResponse インターフェイスを使用すると、応答ステータス コードを設定することもできます。一般的に使用されるステータス コードの一部を次に示します。

  • 200: リクエストが成功し、サーバーがリクエストされたデータを返したことを示します。

  • 302: 要求されたリソースが新しい場所に移動され、新しい場所が応答ヘッダー情報で返されたことを示します。

  • 404: 要求されたリソースが存在しないことを示します。

  • #500: サーバーがリクエストを処理中にエラーが発生したことを示します。

设置响应状态码的方法如下:

void setStatus(int sc):设置响应状态码。例如,如果要设置状态码为 200,则可以使用 setStatus(200)

示例代码

下面是一个示例代码,该代码会向客户端发送一个包含 HTML 内容的响应,并设置响应头信息和状态码:

@WebServlet("/example")
public class ExampleServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        response.setCharacterEncoding("UTF-8");
        response.setStatus(HttpServletResponse.SC_OK);
        response.setHeader("Cache-Control", "no-cache");
        PrintWriter out = response.getWriter();
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Example Servlet</title>");
        out.println("</head>");
        out.println("<body>");
        out.println("<h2>Hello, world!</h2>");
        out.println("</body>");
        out.println("</html>");
    }
}

在上面的代码中,我们使用 HttpServletResponse.SC_OK 设置响应状态码为 200。然后,我们使用 response.setHeader("Cache-Control", "no-cache") 方法设置 Cache-Control 头信息为 no-cache。最后,我们使用 out.println() 方法向客户端发送 HTML 内容。

以上がJavaサーブレットでResponseオブジェクトを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。