正如前面的章节中讨论的那样,当一个 Web 服务器响应一个 HTTP 请求时,响应通常包括一个状态行、一些响应报头、一个空行和文档。一个典型的响应如下所示:

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...(Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>

状态行包括 HTTP 版本(在本例中为 HTTP/1.1)、一个状态码(在本例中为 200)和一个对应于状态码的短消息(在本例中为 OK)。

下表总结了从 Web 服务器端返回到浏览器的最有用的 HTTP 1.1 响应报头,您会在 Web 编程中频繁地使用它们:

设置 HTTP 响应报头的方法

下面的方法可用于在 Servlet 程序中设置 HTTP 响应报头。这些方法通过 HttpServletResponse 对象可用。


HTTP Header 响应实例

您已经在前面的实例中看到 setContentType() 方法,下面的实例也使用了同样的方法,此外,我们会用 setIntHeader() 方法来设置 Refresh 头。

//导入必需的 java 库
import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;@WebServlet("/Refresh")//扩展 HttpServlet 类
public class Refresh extends HttpServlet {// 处理 GET 方法请求的方法public void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException{// 设置刷新自动加载时间为 5 秒response.setIntHeader("Refresh", 5);// 设置响应内容类型response.setContentType("text/html;charset=UTF-8");//使用默认时区和语言环境获得一个日历  Calendar cale = Calendar.getInstance();  //将Calendar类型转换成Date类型  Date tasktime=cale.getTime();  //设置日期输出的格式  SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  //格式化输出  String nowTime = df.format(tasktime);PrintWriter out = response.getWriter();String title = "自动刷新 Header 设置 - 菜鸟教程实例";String docType ="<!DOCTYPE html>\n";out.println(docType +"<html>\n" +"<head><title>" + title + "</title></head>\n"+"<body bgcolor=\"#f0f0f0\">\n" +"<h1 align=\"center\">" + title + "</h1>\n" +"<p>当前时间是:" + nowTime + "</p>\n");}// 处理 POST 方法请求的方法public void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}
}

以上测试实例是位于 TomcatTest 项目下,对应的 web.xml 配置为:

<?xml version="1.0" encoding="UTF-8"?>
<web-app>  <servlet>  <!-- 类名 -->  <servlet-name>Refresh</servlet-name>  <!-- 所在的包 -->  <servlet-class>com.runoob.test.Refresh</servlet-class>  </servlet>  <servlet-mapping>  <servlet-name>Refresh</servlet-name>  <!-- 访问的网址 -->  <url-pattern>/TomcatTest/Refresh</url-pattern>  </servlet-mapping>
</web-app>

现在,调用上面的 Servlet,每隔 5 秒会显示当前系统时间。只要运行 Servlet 并稍等片刻,即可看到如下的结果:

Servlet 服务器 HTTP 响应相关推荐

  1. iphone smtp服务器没有响应,电子邮件卡在iPhone或iPad上的发件箱?如何修复iOS中的未发送邮件 | MOS86...

    您曾经在iOS中发送电子邮件,只能将信息卡在iPhone,iPad或iPod touch的邮件应用发件箱中?你知道这是什么时候发生的,因为在iOS的Mail应用程序的底部,状态栏在iOS中显示1个未发 ...

  2. 文档服务器连接未响应,win7DNS服务器未响应或者未连接问题的解决

    win7DNS服务器未响应或者未连接问题的解决 win7DNS服务器未响应或者未连接问题的解决 经常遇到别人问这个问题,今天搜集了一下网络上的解决方案,然后系统的整理了一下,便于大家理解和解决问题.我 ...

  3. 服务器连接超时不响应怎么回事,勇者斗恶龙x服务器没有响应连接超时解决方法...

    勇者斗恶龙x服务器没有响应连接超时怎么办?勇者斗恶龙x服务器没有响应连接超时解决方法.今天小编就带大家一起来看一下这一问题的解决方法,一起来看一下吧! (24日国服首测正式开启) 勇者斗恶龙10进不去 ...

  4. lol为什么网络连接到服务器未响应,lol登陆服务器未响应是怎么回事 解决lol登陆服务器未响应有方法...

    最近有很多lol玩家遇到了"登陆服务器未响应,您可能遇到一个网络问题,请检查您的网络"的问题,那么这是什么造成的呢,又该如何解决呢?下面小编给大家分享解决"lol登陆服务 ...

  5. phpmyadmin error:#2002 - 服务器没有响应

    phpmyadmin error:#2002 - 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正确配置) 编译配置文件: vim config.inc.php $i++; / Authe ...

  6. 转转服务器无响应,【转】服务器无响应(或者本地MySQL服务器的套接字没有正确配置)的问题...

    服务器无响应(或者本地MySQL服务器的套接字没有正确配置)的问题 第一种情况:(深度清理垃圾导致host.MYD丢失) 跟很多网友一样!用wamp(或xampp.speedphp)可以很容易在自己的 ...

  7. MySQL/phpmyadmin问题解决手记:#2002 – 服务器没有响应 (或者本地 MySQL 服务器的套接字没有正确配置)

    在fedora 12下使用自己从源代码编译的mysql使用,安装过程很麻烦,但好在运行正常. 之前使用windows下mysql/phpmyadmin,到linux下,当然也少不了,整个phpmyad ...

  8. 路由器无服务器无响应是怎么回事啊,wifi服务器无响应怎么解决(图文)

    摘 要 [导读]wifi服务器无响应怎么解决,下面就是路由器之家整理的网络知识百科,来看看吧!大家好,我是191路由器网小编,上述问题将由我为大家讲解.wifi服务器无响应解决的方法是:1.请登录WI ...

  9. 天龙八部凤鸣镇目标服务器无法响应,Jmeter给NoHttpResponseException:目标服务器无法响应错误...

    我正在做一个域的性能测试. 我得到Non HTTP response message: The target server failed to respond response message.Jme ...

最新文章

  1. SharePoint 2007 安装与配置
  2. 提交响应后无法调用sendredirect_微服务的那些事(三),微服务的远程调用方式。RPC和HTTP...
  3. MVC 3 登录、注销
  4. 在myeclipse中导入图片
  5. 【干货】女性社区应该如何抵御垃圾男
  6. c++重载自增与自减运算符(前置与后置)
  7. 微信 html5禁止拖拽,js实现微信禁止h5网页下拉,禁止微信内置浏览器下拉网页...
  8. 【LeetCode】剑指 Offer 33. 二叉搜索树的后序遍历序列
  9. python往redis导数_Python:教你一招,将500W+的数据快速写入redis(文内赋赠教程)...
  10. CUDA C编程权威指南 第五章 共享内存和常量内存
  11. set.seed(7)什么意思
  12. 2014-12-02-2107-Java-UML
  13. visual studio 2019配置dlib读取jpeg图片
  14. Mybatis-学习笔记(10)调用存储过程、存储函数
  15. 数字信号处理期末总复习
  16. Spring框架学习——AOP
  17. php模拟邮箱登录2017,php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录(原创)...
  18. VC++获取系统信息/获取OS/获取MAC/获取本地IP/判断是否为网吧
  19. ECCV 2020 论文大盘点-语义分割篇
  20. 微信斑马系统:微信朋友圈广告背后的利器

热门文章

  1. vSAN一次人肉工程师踩过的坑
  2. 自带密钥 (BYOK)
  3. RabbitMQ学习总结(8)——RabbitMQ后台管理控制台页面属性总结
  4. Myeclipse学习总结(15)——Eclipse/MyEclipse中Maven项目常见问题解决汇总
  5. Maven学习总结(42)——Maven多模块构建中常用的参数
  6. MVC三层架构在各框架中的特征
  7. python模拟seo_Python模拟鼠标点击实现方法(将通过实例自动化模拟在360浏览器中自动搜索python)_天津SEO...
  8. html 滚动条处于页面底部,滚动条一直置于页面底部,开发聊天程序须知。
  9. java操作Linux 调用shell命令,shell脚本
  10. WP7有约(六):AppBarUtils使用指南