📜  JSP-客户端请求

📅  最后修改于: 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.

HttpServletRequest对象

该请求对象是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.

HTTP标头请求示例

以下是使用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中,然后尝试访问它。

HTTP标头请求示例

标头名称 标头值
接受 * / *
接受语言 我们
用户代理 Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 5.1; Trident / 4.0; InfoPath.2; MS-RTC LM 8)
接受编码 gzip,放气
主办 本地主机:8080
连接 活着
缓存控制 无缓存

您可以尝试以类似方式处理所有方法。