Java 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");
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,323评论 19 139
  • Refer to: www.threemeal.com/blog/12/ 中间件 中间件是一个钩子框架,它们可以介...
    兰山小亭阅读 16,630评论 9 165
  • 一、概念(载录于:http://www.cnblogs.com/EricaMIN1987_IT/p/3837436...
    yuantao123434阅读 12,682评论 6 152
  • 如果再让我活一次 我会选择 困在牢笼 但请再给我一天时间‘ 把麦子再吃一遍 把空气再呼吸一遍 把桌子再抹一遍 再去...
    左玲子阅读 2,361评论 2 0
  • 冬日,一个寻常的午后,渐渐的走在路上,一个人回想着,回想着。 默默的接受它,门外,已是风临万丈。 接受,接受着,不...
    airven阅读 2,087评论 2 2