📄 pi3httpservletrequest.java
字号:
* Returns the name of the scheme used to make this request,
* for example,
* <code>http</code>, <code>https</code>, or <code>ftp</code>.
* Different schemes have different rules for constructing URLs,
* as noted in RFC 1738.
*
* @return a <code>String</code> containing the name
* of the scheme used to make this request
*
*/
public String getScheme() {
return "http";
};
/**
* Returns the host name of the server that received the request.
* For HTTP servlets, same as the value of the CGI variable
* <code>SERVER_NAME</code>.
*
* @return a <code>String</code> containing the name
* of the server to which the request was sent
*/
public String getServerName() {
return su.getRequestVariable("HostName");
};
/**
* Returns the port number on which this request was received.
* For HTTP servlets, same as the value of the CGI variable
* <code>SERVER_PORT</code>.
*
* @return an integer specifying the port number
*
*/
public int getServerPort() {
String s = su.getRequestVariable("ServerPort");
if (s != null) {
Integer i = new Integer(s);
if ( i != null) return i.intValue();
};
return -1;
};
/**
* Retrieves the body of the request as character data using
* a <code>BufferedReader</code>. The reader translates the character
* data according to the character encoding used on the body.
* Either this method or {@link #getReader} may be called to read the
* body, not both.
*
*
* @return a <code>BufferedReader</code>
* containing the body of the request
*
* @exception UnsupportedEncodingException if the character set encoding
* used is not supported and the
* text cannot be decoded
*
* @exception IllegalStateException if {@link #getInputStream} method
* has been called on this request
*
* @exception IOException if an input or output exception occurred
*
* @see #getInputStream
*
*/
public BufferedReader getReader() throws IOException {
if (usedIS) {
IllegalStateException e = new IllegalStateException();
throw e;
}
usedBR = true;
return br;
};
/**
* Returns the Internet Protocol (IP) address of the client
* that sent the request. For HTTP servlets, same as the value of the
* CGI variable <code>REMOTE_ADDR</code>.
*
* @return a <code>String</code> containing the
* IP address of the client that sent the request
*
*/
public String getRemoteAddr() {
return su.getRequestVariable("RemoteAddr");
};
/**
* Returns the fully qualified name of the client that sent the
* request, or the IP address of the client if the name cannot be
* determined. For HTTP servlets, same as the value of the CGI variable
* <code>REMOTE_HOST</code>.
*
* @return a <code>String</code> containing the fully qualified name
* of the client
*
*/
public String getRemoteHost() {
return su.getRequestVariable("RemoteHost");
};
/**
*
* Stores an attribute in this request.
* Attributes are reset between requests. This method is most
* often used in conjunction with {@link RequestDispatcher}.
*
* <p>Attribute names should follow the same conventions as
* package names. Names beginning with <code>java.*</code>,
* <code>javax.*</code>, and <code>com.sun.*</code>, are
* reserved for use by Sun Microsystems.
*
*
* @param name a <code>String</code> specifying
* the name of the attribute
*
* @param o the <code>Object</code> to be stored
*
*/
public void setAttribute(String name, Object o) {
att.put(name, o);
};
/**
*
* Removes an attribute from this request. This method is not
* generally needed as attributes only persist as long as the request
* is being handled.
*
* <p>Attribute names should follow the same conventions as
* package names. Names beginning with <code>java.*</code>,
* <code>javax.*</code>, and <code>com.sun.*</code>, are
* reserved for use by Sun Microsystems.
*
*
* @param name a <code>String</code> specifying
* the name of the attribute to remove
*
*/
public void removeAttribute(String name) {
att.remove(name);
};
/**
*
* Returns the preferred <code>Locale</code> that the client will
* accept content in, based on the Accept-Language header.
* If the client request doesn't provide an Accept-Language header,
* this method returns the default locale for the server.
*
*
* @return the preferred <code>Locale</code> for the client
*
*/
public Locale getLocale() {
return (Locale)su.getLocales().nextElement();
};
/**
*
* Returns an <code>Enumeration</code> of <code>Locale</code> objects
* indicating, in decreasing order starting with the preferred locale, the
* locales that are acceptable to the client based on the Accept-Language
* header.
* If the client request doesn't provide an Accept-Language header,
* this method returns an <code>Enumeration</code> containing one
* <code>Locale</code>, the default locale for the server.
*
*
* @return an <code>Enumeration</code> of preferred
* <code>Locale</code> objects for the client
*
*/
public Enumeration getLocales() {
return su.getLocales();
};
/**
*
* Returns a boolean indicating whether this request was made using a
* secure channel, such as HTTPS.
*
*
* @return a boolean indicating if the request was made using a
* secure channel
*
*/
public boolean isSecure() {
String https = su.getRequestVariable("KeySize");
return (https != null);
};
/**
*
* Returns a {@link RequestDispatcher} object that acts as a wrapper for
* the resource located at the given path.
* A <code>RequestDispatcher</code> object can be used to forward
* a request to the resource or to include the resource in a response.
* The resource can be dynamic or static.
*
* <p>The pathname specified may be relative, although it cannot extend
* outside the current servlet context. If the path begins with
* a "/" it is interpreted as relative to the current context root.
* This method returns <code>null</code> if the servlet container
* cannot return a <code>RequestDispatcher</code>.
*
* <p>The difference between this method and {@link
* Pi3ServletContext#getRequestDispatcher} is that this method can take a
* relative path.
*
* @param path a <code>String</code> specifying the pathname
* to the resource
*
* @return a <code>RequestDispatcher</code> object
* that acts as a wrapper for the resource
* at the specified path
*
* @see Pi3RequestDispatcher
* @see Pi3ServletContext#getRequestDispatcher
*
*/
public RequestDispatcher getRequestDispatcher(String path) {
return new Pi3RequestDispatcher(this, path);
};
/**
*
* @deprecated As of Version 2.1 of the Java Servlet API,
* use {@link Pi3ServletContext#getRealPath} instead.
*
*/
public native String getRealPath(String path);
/**********************
* HttpServletRequest *
**********************/
/**
* Returns the name of the authentication scheme used to protect
* the servlet, for example, "BASIC" or "SSL," or <code>null</code>
* if the servlet was not protected.
*
* <p>Same as the value of the CGI variable AUTH_TYPE.
*
*
* @return a <code>String</code> specifying the name of
* the authentication scheme, or
* <code>null</code> if the request was not
* authenticated
*
*/
public String getAuthType() {
return su.getResponseVariable("AuthType");
}
/**
*
* Returns an array containing all of the <code>Cookie</code>
* objects the client sent with this request.
* This method returns <code>null</code> if no cookies were sent.
*
* @return an array of all the <code>Cookies</code>
* included with this request, or <code>null</code>
* if the request has no cookies
*
*
*/
public native Cookie[] getCookies();
/**
*
* Returns the value of the specified request header
* as a <code>long</code> value that represents a
* <code>Date</code> object. Use this method with
* headers that contain dates, such as
* <code>If-Modified-Since</code>.
*
* <p>The date is returned as
* the number of milliseconds since January 1, 1970 GMT.
* The header name is case insensitive.
*
* <p>If the request did not have a header of the
* specified name, this method returns -1. If the header
* can't be converted to a date, the method throws
* an <code>IllegalArgumentException</code>.
*
* @param name a <code>String</code> specifying the
* name of the header
*
* @return a <code>long</code> value
* representing the date specified
* in the header expressed as
* the number of milliseconds
* since January 1, 1970 GMT,
* or -1 if the named header
* was not included with the
* reqest
*
* @exception IllegalArgumentException If the header value
* can't be converted
* to a date
*
*/
public long getDateHeader(String name) {
String s = (String)hdr.get(name);
if (s != null) {
return su.getHttpDate(s);
} else {
return -1;
}
}
/**
*
* Returns the value of the specified request header
* as a <code>String</code>. If the request did not include a header
* of the specified name, this method returns <code>null</code>.
* The header name is case insensitive. You can use
* this method with any request header.
*
* @param name a <code>String</code> specifying the
* header name
*
* @return a <code>String</code> containing the
* value of the requested
* header, or <code>null</code>
* if the request does not
* have a header of that name
*
*/
public String getHeader(String name) {
return (String)hdr.get(name);
}
/**
*
* Returns all the values of the specified request header
* as an <code>Enumeration</code> of <code>String</code> objects.
*
* <p>Some headers, such as <code>Accept-Language</code> can be sent
* by clients as several headers each with a different value rather than
* sending the header as a comma separated list.
*
* <p>If the request did not include any headers
* of the specified name, this method returns an empty
* <code>Enumeration</code>.
* The header name is case insensitive. You can use
* this method with any request header.
*
* @param name a <code>String</code> specifying the
* header name
*
* @return a <code>Enumeration</code> containing the
* values of the requested
* header, or <code>null</code>
* if the request does not
* have any headers of that name
*
*/
public Enumeration getHeaders(String name) {
Hashtable h = new Hashtable();
for (Enumeration e = hdr.keys(); e.hasMoreElements();) {
String key = (String)e.nextElement();
if (!key.equalsIgnoreCase(name)) continue;
h.put(key, hdr.get(key));
}
return h.elements();
}
/**
*
* Returns an enumeration of all the header names
* this request contains. If the request has no
* headers, this method returns an empty enumeration.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -