# `ServletResponse`接口

> 原文： [https://beginnersbook.com/2013/05/servlet-response/](https://beginnersbook.com/2013/05/servlet-response/)

servlet 容器连接到 Web 服务器，该服务器从某个端口上的客户端接收 Http 请求。当客户端向 Web 服务器发送请求时，servlet 容器会创建`HttpServletRequest`和`HttpServletResponse`对象，并将它们作为参数传递给 servlet `service()`方法。

响应对象允许您格式化并将响应发送回客户端。首先，我们将看到`ServletReponse`接口中常用的方法，然后我们将看到一个示例。

## `ServletResponse`接口的方法

1）`String getCharacterEncoding()`：返回发送给客户端的响应正文中使用的 MIME 字符集的名称。

2）`String getContentType()`：返回响应内容类型。例如`text`，`html`等

3）`ServletOutputStream getOutputStream()`：返回一个适合在响应中写入二进制数据的`ServletOutputStream`。

4）`java.io.PrintWriter getWriter()`：返回`PrintWriter`对象。

5）`void setCharacterEncoding(java.lang.String charset)`：设置响应的 MIME 字符集（字符编码）。

6）`void setContentLength(int len)`：设置响应体的长度。

7）`void setContentType(java.lang.String type)`：设置响应数据的类型。

8）`void setBufferSize(int size)`：设置缓冲区大小。

9）`int getBufferSize()`：返回缓冲区大小。

10）`void flushBuffer()`：强制将缓冲区中的任何内容写入客户端。

11）`boolean isCommitted()`：返回一个布尔值，指示响应是否已提交。

12）`void reset()`：清除缓冲区的数据以及标题和状态代码。

获取完整的方法列表。请参阅[官方文档](https://docs.oracle.com/javaee/7/api/javax/servlet/ServletResponse.html)。

## 例：

在下面的示例中，我们使用了`ServletResponse`接口的`setContentType()`和`getWriter()`方法。

`index.html`

```java
<form action="mydetails" method="get">
User name: <input type="text" name="uname">
<input type="submit" value="login">
</form>
```

`MyServletDemo.java`

```java
import javax.servlet.http.*;
import javax.servlet.*;
import java.io.*;
public class MyServletDemo extends HttpServlet{
   public void doGet(HttpServletRequest req,HttpServletResponse res)
   throws ServletException,IOException
   {
     res.setContentType("text/html");
     PrintWriter pwriter=res.getWriter();
     String name=req.getParameter("uname");
     pwriter.println("User Details Page:");
     pwriter.println("Hello "+name);
     pwriter.close();
  }
}
```

`web.xml`

```java
<web-app>
<servlet>
   <servlet-name>DemoServlet</servlet-name>
   <servlet-class>MyServletDemo</servlet-class>
</servlet>
<servlet-mapping> 
   <servlet-name>DemoServlet</servlet-name>
   <url-pattern>/mydetails</url-pattern>
</servlet-mapping>
</web-app>
```

**输出：**

![](img/f22ca3a3c4b40673cebb5eed038d62f8.jpg)

屏幕 2：

![](img/b41e4d5c5e2d3fed8c9d7746bf41e37b.jpg)