JSP客户端请求
当浏览器请求的网页,它会发送大量的信息,而不能直接因为这些信息作为出行的HTTP请求报头的一部分被读取Web服务器。您可以查看HTTP协议进行更多这方面的信息。
以下是来自浏览器端,你会使用非常频繁的网络编程的重要头信息:
头 | 描述 |
---|---|
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. |
Accept-Charset | This header specifies the character sets the browser can use to display the information. For example ISO-8859-1. |
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. |
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. |
Authorization | This header is used by clients to identify themselves when accessing password-protected Web pages. |
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 ofKeep-Alive means that persistent connections should be used |
Content-Length | This header is applicable only to POST requests and gives the size of the POST data in bytes. |
Cookie | This header returns cookies to servers that previously sent them to the browser. |
Host | This header specifies the host and port as given in the original URL. |
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. |
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. |
Referer | This header indicates the URL of the referring Web page. For example, if you are at Web page 1 and click on a link to Web page 2, the URL of Web page 1 is included in the Referer header when the browser requests Web page 2. |
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. |
HttpServletRequest 对象:
request 象是javax.servlet.http.HttpServletRequest对象的一个实例。每次客户端请求一个页面的JSP引擎创建一个新的对象来表示该请求。
request 对象提供的方法来获得,包括表单数据的HTTP头信息,饼干,HTTP方法等。
有以下几个重要的方法,可以用来读取HTTP头在你的JSP程序。这些方法可使用HttpServletRequest对象代表客户端请求的Web服务器。
S.N. | 方法 & 描述 |
---|---|
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 this request, or if the request does not have a session, creates one. |
6 |
HttpSession getSession(boolean create) Returns the current HttpSession associated with 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. |
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. |
HTTP头请求实例:
下面是一个使用HttpServletRequest中的getHeaderNames()方法来读取HTTP头的请见例子。此方法返回一个包含与当前HTTP请求关联的标头信息的枚举。
一旦我们有了一个Enumeration,我们可以循环下来以标准方式的枚举,usinghasMoreElements()方法来确定何时停止使用和nextElement()方法来获得每个参数的名称。
<%@ page import="java.io.*,java.util.*" %> <html> <head> <title>HTTP Header Request Example</title> </head> <body> <center> <h2>HTTP Header Request Example</h2> <table width="100%" border="1" align="center"> <tr bgcolor="#949494"> <th>Header Name</th><th>Header Value(s)</th> </tr> <% Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) { String paramName = (String)headerNames.nextElement(); out.print("<tr><td>" + paramName + "</td> "); String paramValue = request.getHeader(paramName); out.println("<td> " + paramValue + "</td></tr> "); } %> </table> </center> </body> </html>
现在把上面的代码写在main.jsp,并尝试访问它。这会产生什么结果如下:
HTTP Header Request Example
头名称 | 头的值(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 |
也可使用其他方法可以尝试更上面列出的方法很少以同样的方式。
本站文章除注明转载外,均为本站原创或编译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:代码驿站 [http:/www.codeinn.net]
本文标题:JSP客户端请求
本文地址:http://www.codeinn.net/jsp/743.html
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:代码驿站 [http:/www.codeinn.net]
本文标题:JSP客户端请求
本文地址:http://www.codeinn.net/jsp/743.html