JSP服务器响应
当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中的例子),以及相应的状态码(确定在本例中),在很短的消息。
以下是回到浏览器从Web服务器端,你会使用它们非常频繁在网络编程中最有用的HTTP1.1响应头的摘要:
Header | 描述 |
---|---|
Allow | This header specifies the request methods (GET, POST, etc.) that the server supports. |
Cache-Control | This header specifies the circumstances in which the response document can safely be cached. It can have values public, private orno-cache etc. Public means document is cacheable, Private means document is for a single user and can only be stored in private (nonshared) caches and no-cache means document should never be cached. |
Connection | This header instructs the browser whether to use persistent in HTTP connections or not. A value of close instructs the browser not to use persistent HTTP connections and keep-alive means using persistent connections. |
Content-Disposition | This header lets you request that the browser ask the user to save the response to disk in a file of the given name. |
Content-Encoding | This header specifies the way in which the page was encoded during transmission. |
Content-Language | This header signifies the language in which the document is written. For example en, en-us, ru, etc. |
Content-Length | This header indicates the number of bytes in the response. This information is needed only if the browser is using a persistent (keep-alive) HTTP connection. |
Content-Type | This header gives the MIME (Multipurpose Internet Mail Extension) type of the response document. |
Expires | This header specifies the time at which the content should be considered out-of-date and thus no longer be cached. |
Last-Modified | This header indicates when the document was last changed. The client can then cache the document and supply a date by an If-Modified-Since request header in later requests. |
Location | This header should be included with all responses that have a status code in the 300s. This notifies the browser of the document address. The browser automatically reconnects to this location and retrieves the new document. |
Refresh | This header specifies how soon the browser should ask for an updated page. You can specify time in number of seconds after which a page would be refreshed. |
Retry-After | This header can be used in conjunction with a 503 (Service Unavailable) response to tell the client how soon it can repeat its request. |
Set-Cookie | This header specifies a cookie associated with the page. |
HttpServletResponse 对象:
响应对象是javax.servlet.http.HttpServletRequest对象的一个实例。正如服务器创建的请求对象,它还会创建一个对象来表示响应给客户端。
响应对象还定义了处理创造新的HTTP标头的接口。通过这个对象的JSP程序员可以添加新的Cookie或日期标记,HTTP状态代码等。
有以下方法可用于设置HTTP响应报头中的Servlet程序。这些方法可与HttpServletResponse对象表示服务器响应。
S.N. | 方法 & 描述 |
---|---|
1 |
String encodeRedirectURL(String url) Encodes the specified URL for use in the sendRedirect method or, if encoding is not needed, returns the URL unchanged. |
2 |
String encodeURL(String url) Encodes the specified URL by including the session ID in it, or, if encoding is not needed, returns the URL unchanged. |
3 |
boolean containsHeader(String name) Returns a boolean indicating whether the named response header has already been set. |
4 |
boolean isCommitted() Returns a boolean indicating if the response has been committed. |
5 |
void addCookie(Cookie cookie) Adds the specified cookie to the response. |
6 |
void addDateHeader(String name, long date) Adds a response header with the given name and date-value. |
7 |
void addHeader(String name, String value) Adds a response header with the given name and value. |
8 |
void addIntHeader(String name, int value) Adds a response header with the given name and integer value. |
9 |
void flushBuffer() Forces any content in the buffer to be written to the client. |
10 |
void reset() Clears any data that exists in the buffer as well as the status code and headers. |
11 |
void resetBuffer() Clears the content of the underlying buffer in the response without clearing headers or status code. |
12 |
void sendError(int sc) Sends an error response to the client using the specified status code and clearing the buffer. |
13 |
void sendError(int sc, String msg) Sends an error response to the client using the specified status. |
14 |
void sendRedirect(String location) Sends a temporary redirect response to the client using the specified redirect location URL. |
15 |
void setBufferSize(int size) Sets the preferred buffer size for the body of the response. |
16 |
void setCharacterEncoding(String charset) Sets the character encoding (MIME charset) of the response being sent to the client, for example, to UTF-8. |
17 |
void setContentLength(int len) Sets the length of the content body in the response In HTTP servlets, this method sets the HTTP Content-Length header. |
18 |
void setContentType(String type) Sets the content type of the response being sent to the client, if the response has not been committed yet. |
19 |
void setDateHeader(String name, long date) Sets a response header with the given name and date-value. |
20 |
void setHeader(String name, String value) Sets a response header with the given name and value. |
21 |
void setIntHeader(String name, int value) Sets a response header with the given name and integer value. |
22 |
void setLocale(Locale loc) Sets the locale of the response, if the response has not been committed yet. |
23 |
void setStatus(int sc) Sets the status code for this response. |
HTTP Header Response 实例:
下面的例子将使用setIntHeader()方法来设置刷新头,模拟数字时钟:
<%@ page import="java.io.*,java.util.*" %> <html> <head> <title>Auto Refresh Header Example</title> </head> <body> <center> <h2>Auto Refresh Header Example</h2> <% // Set refresh, autoload time as 5 seconds response.setIntHeader("Refresh", 5); // Get current time Calendar calendar = new GregorianCalendar(); String am_pm; int hour = calendar.get(Calendar.HOUR); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); if(calendar.get(Calendar.AM_PM) == 0) am_pm = "AM"; else am_pm = "PM"; String CT = hour+":"+ minute +":"+ second +" "+ am_pm; out.println("Current Time is: " + CT + " "); %> </center> </body> </html>
现在把上面的代码在main.jsp,并尝试访问它。每5秒后得出这样会显示当前系统时间。只要运行JSP和等待,看看结果:
Auto Refresh Header 例子Current Time is: 9:44:50 PM |
也可以其他方法可以尝试更上面列出的方法以同样的方式。
本站文章除注明转载外,均为本站原创或编译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:代码驿站 [http:/www.codeinn.net]
本文标题:JSP服务器响应
本文地址:http://www.codeinn.net/jsp/744.html
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:代码驿站 [http:/www.codeinn.net]
本文标题:JSP服务器响应
本文地址:http://www.codeinn.net/jsp/744.html