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-Disposition
を name
、attachment の値として使用できます。 filename="example.txt"
を value
の値として使用します。
void addHeader(String name, String value)
: 応答ヘッダー情報を追加します。たとえば、Cache-Control
ヘッダーを追加する場合は、Cache-Control
を name
および no-cache の値として使用できます。
として value
の値。
void setIntHeader(String name, int value)
: 応答ヘッダー情報を設定します。値は整数です。たとえば、Content-Length
ヘッダーを設定する場合は、Content-Length
を name
の値として使用し、ファイル サイズを ## として使用できます。 #value 値。
void addIntHeader(String name, int value): 応答ヘッダー情報を追加します。値は整数です。たとえば、
Expires ヘッダーを追加する場合は、
Expires を
name の値として使用し、タイムスタンプを
value の値として使用できます。 。
String getHeader(String name): 指定した名前のレスポンスヘッダ情報を取得します。たとえば、
Content-Type ヘッダー情報を取得する場合は、
Content-Type を
name の値として使用できます。
Collectionf7e83be87db5cd2d9a8a0b8117b38cd4 getHeaders(String name): 指定された名前のすべての応答ヘッダー情報を取得します。たとえば、
Set-Cookie ヘッダーを取得したい場合は、
name の値として
Set-Cookie を使用できます。
int getIntHeader(String name): 指定された名前の整数の応答ヘッダー情報を取得します。たとえば、
Content-Length ヘッダー情報を取得する場合は、
Content-Length を
name の値として使用できます。
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 サイトの他の関連記事を参照してください。