【发布时间】:2011-12-14 08:05:19
【问题描述】:
我不太确定以下代码的重要性。似乎它可能会导致页面以某个给定的时间间隔自动刷新。然而,这只是一个猜测。这个“刷新”参数是如何使用的?任何其他解释表示赞赏。我做了一些谷歌搜索/查看文档无济于事。
// I have some instance of HttpServletRepsonse named response
response.setHeader("Refresh","300");
【问题讨论】:
我不太确定以下代码的重要性。似乎它可能会导致页面以某个给定的时间间隔自动刷新。然而,这只是一个猜测。这个“刷新”参数是如何使用的?任何其他解释表示赞赏。我做了一些谷歌搜索/查看文档无济于事。
// I have some instance of HttpServletRepsonse named response
response.setHeader("Refresh","300");
【问题讨论】:
response.setHeader(...) 将 HTTP 标头添加到响应中。这些标头由 Web 浏览器解释。
您可以在http://en.wikipedia.org/wiki/List_of_HTTP_header_fields中找到有效标头列表
您的代码中的那个“... Netscape 引入的专有、非标准标头”。此标头等效于元“refresh”,它会在给定时间间隔后自动刷新当前网页
【讨论】:
你没有很努力地搜索。见http://en.wikipedia.org/wiki/URL_redirection#Refresh_Meta_tag_and_HTTP_refresh_header。刷新标头用于要求浏览器在延迟一段时间后重定向到另一个 URL。如果没有提供 URL,我猜它会重定向到相同的 URL。
【讨论】:
这是一个旧的 HTTP 标头值,已成为某种“约定俗成的标准”。
【讨论】:
这就是HTTP refresh header,也就是众所周知的meta refresh tag。您的问题是与 HTML <head> 中以下行等效的 HTTP 响应标头:
<meta http-equiv="refresh" content="300" />
它将在给定的秒数后重新加载当前请求,就像您按 F5 一样。这是一个古老的 Netscape 发明,即使不是所有的浏览器也都支持它,但是这个“元”标头没有被纳入RFC 2616 - HTTP header field definitions 标准。 W3C 也discourages 使用了这个标头。
【讨论】:
http-equiv 标记来表示所有 HTTP 响应标头。仅当 HTTP 响应标头中已经存在等效项时,才会忽略元标记。但是,当从本地磁盘文件系统打开 HTML 资源而不是通过 HTTP 请求(例如,在将页面保存到磁盘之后)打开 HTML 资源时,总是使用元标记。
Refresh 标头,其中 URL 包含 #,但是当浏览器重定向时,它正在请求没有哈希。
response.setIntHeader("refresh", 5);
它为您提供了在 5 秒后刷新页面的功能。
还有元刷新标签来实现这个功能。
【讨论】:
setHeader() 是 Servlet 响应对象设置 HTTP 响应头的方法。 refresh 是 HTTP 响应头 ...所以我们使用 response.setHeader("refresh","5"); 它将每隔 5 秒自动刷新页面..
【讨论】: