Java HttpResponse 详解

简介: HttpServlet 类需要两个参数HttpRequest和HttpResponse。比如doGet方法protected void doGet( HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}我在这先介绍HttpResponse。

HttpServlet 类需要两个参数HttpRequest和HttpResponse。比如doGet方法

protected void doGet(
    HttpServletRequest request,
    HttpServletResponse response)
      throws ServletException, IOException {
}

我在这先介绍HttpResponse。
HttpResponse对象的目的是为了响应浏览器发送给Web应用程序的HTTP请求,表示Web应用程序发送回浏览器的HTTP响应。

HttpResponse对象有很多方法,我会介绍这里最常用的方法。如果你有兴趣其他方法你可以在JavaDoc中阅读。

Writing HTML

你能获取PrintWriter从HttpResponse对象中然后发送html到浏览器。这是个例子:

PrintWriter writer = response.getWriter();

writer.write("<html><body>GET/POST response</body></html>");

Headers

HttpRequest对象可以获取请求头,那么HttpResponse必须设置这些参数。例如:

response.setHeader("Header-Name", "Header Value");

Content-Type

这个请求头是响应给浏览器说明发送的内容类型。例如,HTML的内容类型是text/html。例如:

response.setHeader("Content-Type", "text/html");

写文本

您可以编写文本回浏览器而不是HTML,

response.setHeader("Content-Type", "text/plain");

PrintWriter writer = response.getWriter();
writer.write("This is just plain text");

Content-Length

Content-Length告诉浏览器你的响应信息是多少个字节

response.setHeader("Content-Length", "31642");

写二进制数据

你也能写二进制数据给浏览器,例如,你能发送一个图片、pdf文件等。
这样的话,contentType 应该是 image/png。
为了发送二进制数据,你就不能从response.gtWriter()方法中获取Writer了,因为它只是发送text类型的。
你能用OutputStream 从response.getOutputStream()方法中获取 输出流。例如:

OutputStream outputStream = response.getOutputStream();

outputStream.write(...);

URL重定向

你可以从servlet从其中重定向一个不同的URL发送给浏览器,当重定向的时候不能发送任何数据。例如:

response.sendRedirect("http://www.baidu.com");
相关文章
|
10月前
|
Java 程序员 API
Java—Throwing Exceptions
Java—Throwing Exceptions
85 1
|
3月前
|
存储 Java C++
java中“==”和equals,究竟比的是什么
java中“==”和equals,究竟比的是什么
70 4
|
7月前
|
微服务
成功解决:java.lang.NoSuchMethodError: reactor.netty.http.client.HttpClient.chunkedTransfer(Z)Lreactor/ne
这篇文章讲述了在微服务架构中整合gateway网关时遇到的`java.lang.NoSuchMethodError`错误的解决方法。问题主要是由于`spring-boot-starter-parent`的版本和`spring-cloud-starter-gateway`的版本不匹配所导致。文章提供了具体的版本不一致的错误配置,并给出了匹配的版本配置方案,以及成功测试的截图。
成功解决:java.lang.NoSuchMethodError: reactor.netty.http.client.HttpClient.chunkedTransfer(Z)Lreactor/ne
|
8月前
|
算法 Java 索引
【Java】已解决java.lang.ArrayIndexOutOfBoundsException异常
【Java】已解决java.lang.ArrayIndexOutOfBoundsException异常
841 0
|
8月前
|
Java 测试技术
【Java】已解决java.lang.NullPointerException异常
【Java】已解决java.lang.NullPointerException异常
972 0
|
Java API C++
【零基础??天速成 Java】Day1 - 初识 java
【零基础??天速成 Java】Day1 - 初识 java
53 0
|
SQL 运维 Kubernetes
强哥说Java--Java中的异常处理
强哥说Java--Java中的异常处理
117 0
|
SQL 算法 安全
Java 中关于 Null 的这些事儿你知道吗
对于 Java 程序员来说,null 一直是令人头疼的问题,经常会受到 NullPointerException 的蹂躏和壁咚。Java 的发明者也承认这是一个巨大的设计错误。
120 0
Java 中关于 Null 的这些事儿你知道吗
|
Java
【Java】浅谈“equals“和“==”
【Java】浅谈“equals“和“==”
110 0
【Java】浅谈“equals“和“==”
|
JavaScript 前端开发 Java
JAVA8的java.util.function包
JAVA8的java.util.function包
144 0