Java-HttpServletRequest

来源:互联网 发布:快速排序算法java递归 编辑:程序博客网 时间:2024/06/05 10:43
//继承了ServletRequest接口,给servlet提供Request请求信息,servlet 容器会创建以后HttpServletRequest对象//并把它作为一个参数给service函数public interface HttpServletRequest extends ServletRequest {    /**    * String identifier for Basic authentication. Value "BASIC"    */    public static final String BASIC_AUTH = "BASIC";    /**    * String identifier for Form authentication. Value "FORM"    */    public static final String FORM_AUTH = "FORM";    /**    * String identifier for Client Certificate authentication. Value "CLIENT_CERT"    */    public static final String CLIENT_CERT_AUTH = "CLIENT_CERT";    /**    * String identifier for Digest authentication. Value "DIGEST"    */    public static final String DIGEST_AUTH = "DIGEST";    /**     * Returns the name of the authentication scheme used to protect     * the servlet. All servlet containers support basic, form and client      * certificate authentication, and may additionally support digest      * authentication.     * If the servlet is not authenticated <code>null</code> is returned.      * <p>Same as the value of the CGI variable AUTH_TYPE.     */   //返回验证符,BASIC_AUTH、FORM_AUTH、 CLIENT_CERT_AUTH、 DIGEST_AUTH    public String getAuthType();    /**     * 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.     * @returnan array of all the <code>Cookies</code>     *included with this request, or <code>null</code>     *if the request has no cookies     */    //返回一个包含所有cookie的数组    public 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 namea <code>String</code> specifying the     *name of the header     * @returna <code>long</code> valuerepresenting the date specified in the header expressed as the number of milliseconds since January 1, 1970 GMT,     *or -1 if the named headerwas not included with the     */    //返回name的时间请求头部,没有值返回-1    public long getDateHeader(String name);    /**     * 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>.     * If there are multiple headers with the same name, this method     * returns the first head in the request.     * The header name is case insensitive. You can use     * this method with any request header.     * @param namea <code>String</code> specifying theheader name     * @returna <code>String</code> containing thevalue of the requested     *header, or <code>null</code>if the request does nothave a header of that name     */    //返回头部name的信息    public String getHeader(String 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 namea <code>String</code> specifying the     *header name     * @returnan <code>Enumeration</code> containing     *                  the values of the requested header. If     *                  the request does not have any headers of     *                  that name return an empty     *                  enumeration. If      *                  the container does not allow access to     *                  header information, return null     */    //返回头部name的枚举    public Enumeration getHeaders(String name);     /**     * Returns an enumeration of all the header names     * this request contains. If the request has no     * headers, this method returns an empty enumeration.     * <p>Some servlet containers do not allow     * servlets to access headers using this method, in     * which case this method returns <code>null</code>     * @returnan enumeration of all the     *header names sent with this     *request; if the request has     *no headers, an empty enumeration;     *if the servlet container does not     *allow servlets to use this method,     */    //所有头部的name枚举    public Enumeration getHeaderNames();    /**     * Returns the value of the specified request header     * as an <code>int</code>. If the request does not have a header     * of the specified name, this method returns -1. If the     * header cannot be converted to an integer, this method     * throws a <code>NumberFormatException</code>.     * <p>The header name is case insensitive.     * @param namea <code>String</code> specifying the name of a request header     * @return an integer expressing the value of the request header or -1if the request doesn't have aheader of this name     * @exceptionNumberFormatExceptionIf the header valuecan't be convertedto an <code>int</code>     */    //头部name作为int返回    public int getIntHeader(String name);    /**     * Returns the name of the HTTP method with which this      * request was made, for example, GET, POST, or PUT.     * Same as the value of the CGI variable REQUEST_METHOD.     * @returna <code>String</code>      *specifying the name     *of the method with which     *this request was made     */    //返回方法get,post,put    public String getMethod();    /**     * Returns any extra path information associated with     * the URL the client sent when it made this request.     * The extra path information follows the servlet path     * but precedes the query string and will start with     * a "/" character.     * <p>This method returns <code>null</code> if there     * was no extra path information.     * <p>Same as the value of the CGI variable PATH_INFO.     * @returna <code>String</code>, decoded by the     *web container, specifying      *extra path information that comes     *after the servlet path but before     *the query string in the request URL;     *or <code>null</code> if the URL does not have     *any extra path information     */     //返回路径信息    public String getPathInfo();    /**     * but before the query string, and translates it to a real     * path. Same as the value of the CGI variable PATH_TRANSLATED.     * <p>If the URL does not have any extra path information,     * this method returns <code>null</code> or the servlet container     * cannot translate the virtual path to a real path for any reason     * (such as when the web application is executed from an archive).     * The web container does not decode this string.     * @returna <code>String</code> specifying the     *real path, or <code>null</code> if     *the URL does not have any extra path     *information     */    //    public String getPathTranslated();    /**     *     * Returns the portion of the request URI that indicates the context     * of the request.  The context path always comes first in a request     * URI.  The path starts with a "/" character but does not end with a "/"     * character.  For servlets in the default (root) context, this method     * returns "". The container does not decode this string.     * @returna <code>String</code> specifying the     *portion of the request URI that indicates the context     *of the request     */    public String getContextPath();    /**     *     * Returns the query string that is contained in the request     * URL after the path. This method returns <code>null</code>     * if the URL does not have a query string. Same as the value     * of the CGI variable QUERY_STRING.      * @returna <code>String</code> containing the query     *string or <code>null</code> if the URL      *contains no query string. The value is not     *decoded by the container.     */    //请求中的参数值    public String getQueryString();    /**     * Returns the login of the user making this request, if the     * user has been authenticated, or <code>null</code> if the user      * has not been authenticated.     * Whether the user name is sent with each subsequent request     * depends on the browser and type of authentication. Same as the      * value of the CGI variable REMOTE_USER.     * @returna <code>String</code> specifying the login     *of the user making this request, or <code>null</code>     *if the user login is not known     */    //远程用户    public String getRemoteUser();    /**     * Returns a boolean indicating whether the authenticated user is included     * in the specified logical "role".  Roles and role membership can be     * defined using deployment descriptors.  If the user has not been     * authenticated, the method returns <code>false</code>.     * @param rolea <code>String</code> specifying the name     *of the role     * @returna <code>boolean</code> indicating whether     *the user making this request belongs to a given role;     *<code>false</code> if the user has not been      *authenticated     */    //用户角色判断    public boolean isUserInRole(String role);    /**     * Returns a <code>java.security.Principal</code> object containing     * the name of the current authenticated user. If the user has not been     * authenticated, the method returns <code>null</code>.     * @returna <code>java.security.Principal</code> containing     *the name of the user making this request;     *<code>null</code> if the user has not been      *authenticated     */    //    public java.security.Principal getUserPrincipal();    /**     * Returns the session ID specified by the client. This may     * not be the same as the ID of the current valid session     * for this request.     * If the client did not specify a session ID, this method returns     * @returna <code>String</code> specifying the session     *ID, or <code>null</code> if the request did     *not specify a session ID     * @see#isRequestedSessionIdValid     */    //获得客户端请求产生的session id    public String getRequestedSessionId();    /**     * 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.     * The web container does not decode this String.     * For example:     * <table summary="Examples of Returned Values">     * <tr align=left><th>First line of HTTP request      </th>     * <th>     Returned Value</th>     * <tr><td>POST /some/path.html HTTP/1.1<td><td>/some/path.html     * <tr><td>GET http://foo.bar/a.html HTTP/1.0     * <td><td>/a.html     * <tr><td>HEAD /xyz?a=b HTTP/1.1<td><td>/xyz     * </table>     * <p>To reconstruct an URL with a scheme and host, use     * {@link HttpUtils#getRequestURL}.     * @returna <code>String</code> containing     *the part of the URL from the      *protocol name up to the query string     * @seeHttpUtils#getRequestURL     */    //获得请求URI    public String getRequestURI();    /**     * Reconstructs the URL the client used to make the request.     * The returned URL contains a protocol, server name, port     * number, and server path, but it does not include query     * string parameters.     * <p>Because this method returns a <code>StringBuffer</code>,     * not a string, you can modify the URL easily, for example,     * to append query parameters.     * <p>This method is useful for creating redirect messages     * and for reporting errors.     * @returna <code>StringBuffer</code> object containing     *the reconstructed URL     */    //返回URL,不包括之前URL中的参数    public StringBuffer getRequestURL();    /**     * Returns the part of this request's URL that calls     * the servlet. This path starts with a "/" character     * and includes either the servlet name or a path to     * the servlet, but does not include any extra path     * information or a query string. Same as the value of     * the CGI variable SCRIPT_NAME.     * <p>This method will return an empty string ("") if the     * servlet used to process this request was matched using     * the "/*" pattern.     * @returna <code>String</code> containing     *the name or path of the servlet being     *called, as specified in the request URL,     *decoded, or an empty string if the servlet     *used to process the request is matched     *using the "/*" pattern.     *     */    //获得URL中servlet路径部分    public String getServletPath();    /**     * Returns the current <code>HttpSession</code>     * associated with this request or, if there is no     * current session and <code>create</code> is true, returns      * a new session.     * <p>If <code>create</code> is <code>false</code>     * and the request has no valid <code>HttpSession</code>,     * this method returns <code>null</code>.     * <p>To make sure the session is properly maintained,     * you must call this method before      * the response is committed. If the container is using cookies     * to maintain session integrity and is asked to create a new session     * when the response is committed, an IllegalStateException is thrown.     * @param create<code>true</code> to create     *a new session for this request if necessary;      *<code>false</code> to return <code>null</code>     *if there's no current session     * @return the <code>HttpSession</code> associated      *with this request or <code>null</code> if     * <code>create</code> is <code>false</code>     *and the request has no valid session     * @see#getSession()     */    //获得httpSession,如果没有并且create为true则新建一个session    public HttpSession getSession(boolean create);    /**     * Returns the current session associated with this request,     * or if the request does not have a session, creates one.     * @returnthe <code>HttpSession</code> associated     *with this request     * @see#getSession(boolean)     */    //获得当前session,如果没有new    public HttpSession getSession();    /**     * Checks whether the requested session ID is still valid.     * @return<code>true</code> if this     *request has an id for a valid session     *in the current session context;     *<code>false</code> otherwise     * @see#getRequestedSessionId     * @see#getSession     * @seeHttpSessionContext     */    //判断session id是否还有效    public boolean isRequestedSessionIdValid();    /**     * Checks whether the requested session ID came in as a cookie.     * @return<code>true</code> if the session ID     *came in as a     *cookie; otherwise, <code>false</code>     * @see#getSession     */     //session id 来自cookie    public boolean isRequestedSessionIdFromCookie();    /**     * Checks whether the requested session ID came in as part of the      * request URL.     * @return<code>true</code> if the session ID     *came in as part of a URL; otherwise,     *<code>false</code>     * @see#getSession     */    //session id 作为请求URL的一部分    public boolean isRequestedSessionIdFromURL();    /**     * @deprecatedAs of Version 2.1 of the Java Servlet     *API, use {@link #isRequestedSessionIdFromURL}     *instead.     */    public boolean isRequestedSessionIdFromUrl();}
public class HttpServletRequestWrapper extends ServletRequestWrapper implements HttpServletRequest {/** * Constructs a request object wrapping the given request.* @throws java.lang.IllegalArgumentException if the request is null*/    public HttpServletRequestWrapper(HttpServletRequest request) {    super(request);    }        private HttpServletRequest _getHttpServletRequest() {return (HttpServletRequest) super.getRequest();    }    /**     * The default behavior of this method is to return getAuthType()     * on the wrapped request object.     */    public String getAuthType() {return this._getHttpServletRequest().getAuthType();    }       /**     * The default behavior of this method is to return getCookies()     * on the wrapped request object.     */    public Cookie[] getCookies() {return this._getHttpServletRequest().getCookies();    }    /**     * The default behavior of this method is to return getDateHeader(String name)     * on the wrapped request object.     */    public long getDateHeader(String name) {return this._getHttpServletRequest().getDateHeader(name);    }            /**     * The default behavior of this method is to return getHeader(String name)     * on the wrapped request object.     */    public String getHeader(String name) {return this._getHttpServletRequest().getHeader(name);    }        /**     * The default behavior of this method is to return getHeaders(String name)     * on the wrapped request object.     */    public Enumeration getHeaders(String name) {return this._getHttpServletRequest().getHeaders(name);    }      /**     * The default behavior of this method is to return getHeaderNames()     * on the wrapped request object.     */    public Enumeration getHeaderNames() {return this._getHttpServletRequest().getHeaderNames();    }        /**     * The default behavior of this method is to return getIntHeader(String name)     * on the wrapped request object.     */     public int getIntHeader(String name) {return this._getHttpServletRequest().getIntHeader(name);    }        /**     * The default behavior of this method is to return getMethod()     * on the wrapped request object.     */    public String getMethod() {return this._getHttpServletRequest().getMethod();    }        /**     * The default behavior of this method is to return getPathInfo()     * on the wrapped request object.     */    public String getPathInfo() {return this._getHttpServletRequest().getPathInfo();    }    /**     * The default behavior of this method is to return getPathTranslated()     * on the wrapped request object.     */     public String getPathTranslated() {return this._getHttpServletRequest().getPathTranslated();    }    /**     * The default behavior of this method is to return getContextPath()     * on the wrapped request object.     */    public String getContextPath() {return this._getHttpServletRequest().getContextPath();    }        /**     * The default behavior of this method is to return getQueryString()     * on the wrapped request object.     */    public String getQueryString() {return this._getHttpServletRequest().getQueryString();    }        /**     * The default behavior of this method is to return getRemoteUser()     * on the wrapped request object.     */    public String getRemoteUser() {return this._getHttpServletRequest().getRemoteUser();    }         /**     * The default behavior of this method is to return isUserInRole(String role)     * on the wrapped request object.     */    public boolean isUserInRole(String role) {return this._getHttpServletRequest().isUserInRole(role);    }                /**     * The default behavior of this method is to return getUserPrincipal()     * on the wrapped request object.     */    public java.security.Principal getUserPrincipal() {return this._getHttpServletRequest().getUserPrincipal();    }           /**     * The default behavior of this method is to return getRequestedSessionId()     * on the wrapped request object.     */    public String getRequestedSessionId() {return this._getHttpServletRequest().getRequestedSessionId();    }        /**     * The default behavior of this method is to return getRequestURI()     * on the wrapped request object.     */    public String getRequestURI() {return this._getHttpServletRequest().getRequestURI();    }/**     * The default behavior of this method is to return getRequestURL()     * on the wrapped request object.     */    public StringBuffer getRequestURL() {return this._getHttpServletRequest().getRequestURL();    }        /**     * The default behavior of this method is to return getServletPath()     * on the wrapped request object.     */    public String getServletPath() {return this._getHttpServletRequest().getServletPath();    }            /**     * The default behavior of this method is to return getSession(boolean create)     * on the wrapped request object.     */    public HttpSession getSession(boolean create) {return this._getHttpServletRequest().getSession(create);    }        /**     * The default behavior of this method is to return getSession()     * on the wrapped request object.     */    public HttpSession getSession() {return this._getHttpServletRequest().getSession();    }        /**     * The default behavior of this method is to return isRequestedSessionIdValid()     * on the wrapped request object.     */     public boolean isRequestedSessionIdValid() {return this._getHttpServletRequest().isRequestedSessionIdValid();    }             /**     * The default behavior of this method is to return isRequestedSessionIdFromCookie()     * on the wrapped request object.     */    public boolean isRequestedSessionIdFromCookie() {return this._getHttpServletRequest().isRequestedSessionIdFromCookie();    }          /**     * The default behavior of this method is to return isRequestedSessionIdFromURL()     * on the wrapped request object.     */     public boolean isRequestedSessionIdFromURL() {return this._getHttpServletRequest().isRequestedSessionIdFromURL();    }        /**     * The default behavior of this method is to return isRequestedSessionIdFromUrl()     * on the wrapped request object.     */    public boolean isRequestedSessionIdFromUrl() {return this._getHttpServletRequest().isRequestedSessionIdFromUrl();    }    }


0 0
原创粉丝点击