📅  最后修改于: 2020-11-13 05:19:02             🧑  作者: Mango
在本章中,我们将讨论JSP中的Client Request。当浏览器请求网页时,它会将大量信息发送到Web服务器。无法直接读取此信息,因为此信息作为HTTP请求标头的一部分传播。您可以检查HTTP协议以获取更多信息。
下表列出了来自浏览器的重要标头信息。此信息在Web编程中经常使用-
S.No. | Header & Description |
---|---|
1 |
Accept This header specifies the MIME types that the browser or other clients can handle. Values of image/png or image/jpeg are the two most common possibilities. |
2 |
Accept-Charset This header specifies the character sets that the browser can use to display the information. For example, ISO-8859-1. |
3 |
Accept-Encoding This header specifies the types of encodings that the browser knows how to handle. Values of gzip or compress are the two most common possibilities. |
4 |
Accept-Language This header specifies the client’s preferred languages in case the servlet can produce results in more than one language. For example en, en-us, ru, etc. |
5 |
Authorization This header is used by clients to identify themselves when accessing password-protected webpages. |
6 |
Connection This header indicates whether the client can handle persistent HTTP connections. Persistent connections permit the client or other browser to retrieve multiple files with a single request. A value of Keep-Alive means that persistent connections should be used. |
7 |
Content-Length This header is applicable only to POST requests and gives the size of the POST data in bytes. |
8 |
Cookie This header returns cookies to servers that previously sent them to the browser. |
9 |
Host This header specifies the host and port as given in the original URL. |
10 |
If-Modified-Since This header indicates that the client wants the page only if it has been changed after the specified date. The server sends a code, 304 which means Not Modified header if no newer result is available. |
11 |
If-Unmodified-Since This header is the reverse of If-Modified-Since; it specifies that the operation should succeed only if the document is older than the specified date. |
12 |
Referer This header indicates the URL of the referring webpages. For example, if you are at Webpage 1 and click on a link to Webpage 2, the URL of Webpage 1 is included in the Referer header when the browser requests Webpage 2. |
13 |
User-Agent This header identifies the browser or other client making the request and can be used to return different content to different types of browsers. |
该请求对象是javax.servlet.http.HttpServletRequest对象的实例。每次客户请求页面时,JSP引擎都会创建一个新对象来表示该请求。
request对象提供获取HTTP标头信息的方法,包括表单数据,cookie,HTTP方法等。
下表列出了可用于读取JSP程序中的HTTP标头的重要方法。这些方法可用于HttpServletRequest对象,该对象表示对Web服务器的客户端请求。
S.No. | Method & Description |
---|---|
1 |
Cookie[] getCookies() Returns an array containing all of the Cookie objects the client sent with this request. |
2 |
Enumeration getAttributeNames() Returns an Enumeration containing the names of the attributes available to this request. |
3 |
Enumeration getHeaderNames() Returns an enumeration of all the header names this request contains. |
4 |
Enumeration getParameterNames() Returns an enumeration of String objects containing the names of the parameters contained in this request. |
5 |
HttpSession getSession() Returns the current session associated with the this request, or if the request does not have a session, creates one. |
6 |
HttpSession getSession(boolean create) Returns the current HttpSession associated with the this request or, if if there is no current session and create is true, returns a new session. |
7 |
Locale getLocale() Returns the preferred Locale that the client will accept content in, based on the Accept-Language header. |
8 |
Object getAttribute(String name) Returns the value of the named attribute as an Object, or null if no attribute of the given name exists. |
9 |
ServletInputStream getInputStream() Retrieves the body of the request as binary data using a ServletInputStream. |
10 |
String getAuthType() Returns the name of the authentication scheme used to protect the servlet, for example, “BASIC” or “SSL,” or null if the JSP was not protected. |
11 |
String getCharacterEncoding() Returns the name of the character encoding used in the body of this request. |
12 |
String getContentType() Returns the MIME type of the body of the request, or null if the type is not known. |
13 |
String getContextPath() Returns the portion of the request URI that indicates the context of the request. |
14 |
String getHeader(String name) Returns the value of the specified request header as a String. |
15 |
String getMethod() Returns the name of the HTTP method with which this request was made, for example, GET, POST, or PUT. |
16 |
String getParameter(String name) Returns the value of a request parameter as a String, or null if the parameter does not exist. |
17 |
String getPathInfo() Returns any extra path information associated with the URL the client sent when it made this request. |
18 |
String getProtocol() Returns the name and version of the protocol the request uses. |
19 |
String getQueryString() Returns the query string that is contained in the request URL after the path. |
20 |
String getRemoteAddr() Returns the Internet Protocol (IP) address of the client that sent the request. |
21 |
String getRemoteHost() Returns the fully qualified name of the client that sent the request. |
22 |
String getRemoteUser() Returns the login of the user making this request, if the user has been authenticated, or null if the user has not been authenticated. |
23 |
String getRequestURI() Returns the part of this request’s URL from the protocol name up to the query string in the first line of the HTTP request. |
24 |
String getRequestedSessionId() Returns the session ID specified by the client. |
25 |
String getServletPath() Returns the part of this request’s URL that calls the JSP. |
26 |
String[] getParameterValues(String name) Returns an array of String objects containing all of the values the given request parameter has, or null if the parameter does not exist. |
27 |
boolean isSecure() Returns a boolean indicating whether this request was made using a secure channel, such as HTTPS. |
28 |
int getContentLength() Returns the length, in bytes, of the request body and made available by the input stream, or -1 if the length is not known. |
29 |
int getIntHeader(String name) Returns the value of the specified request header as an int. |
30 |
int getServerPort() Returns the port number on which this request was received. |
以下是使用HttpServletRequest的getHeaderNames()方法读取HTTP标头信息的示例。此方法返回一个Enumeration,其中包含与当前HTTP请求关联的标头信息。
一旦有了枚举,就可以以标准方式循环枚举。我们将使用hasMoreElements()方法来确定何时停止,并使用nextElement()方法来获取每个参数名称的名称。
HTTP Header Request Example
HTTP Header Request Example
Header Name
Header Value(s)
accept
*/*
accept-language
en-us
user-agent
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; InfoPath.2; MS-RTC LM 8)
accept-encoding
gzip, deflate
host
localhost:8080
connection
Keep-Alive
cache-control
no-cache
现在让我们将上面的代码放在main.jsp中,然后尝试访问它。
标头名称 | 标头值 |
---|---|
接受 | * / * |
接受语言 | 我们 |
用户代理 | Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 5.1; Trident / 4.0; InfoPath.2; MS-RTC LM 8) |
接受编码 | gzip,放气 |
主办 | 本地主机:8080 |
连接 | 活着 |
缓存控制 | 无缓存 |
您可以尝试以类似方式处理所有方法。