geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From djen...@apache.org
Subject svn commit: r788194 [5/6] - in /geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet: ./ annotation/ annotation/jaxrs/ http/ http/annotation/
Date Wed, 24 Jun 2009 22:05:50 GMT
Modified: geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletRequest.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletRequest.java?rev=788194&r1=788193&r2=788194&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletRequest.java (original)
+++ geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletRequest.java Wed Jun 24 22:05:48 2009
@@ -20,128 +20,125 @@
 package javax.servlet.http;
 
 import javax.servlet.ServletRequest;
+import javax.servlet.ServletException;
+
 import java.util.Enumeration;
 
 /**
- *
  * Extends the {@link javax.servlet.ServletRequest} interface
- * to provide request information for HTTP servlets. 
- *
- * <p>The servlet container creates an <code>HttpServletRequest</code> 
+ * to provide request information for HTTP servlets.
+ * <p/>
+ * <p>The servlet container creates an <code>HttpServletRequest</code>
  * object and passes it as an argument to the servlet's service
  * methods (<code>doGet</code>, <code>doPost</code>, etc).
  *
- *
- * @author 	Various
- * @version	$Version$
- *
- *
+ * @version $Rev$ $Date$
  */
 
 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";
+     * String identifier for Basic authentication. Value "BASIC"
+     */
+    String BASIC_AUTH = "BASIC";
+    /**
+     * String identifier for Form authentication. Value "FORM"
+     */
+    String FORM_AUTH = "FORM";
+    /**
+     * String identifier for Client Certificate authentication. Value "CLIENT_CERT"
+     */
+    String CLIENT_CERT_AUTH = "CLIENT_CERT";
+    /**
+     * String identifier for Digest authentication. Value "DIGEST"
+     */
+    String DIGEST_AUTH = "DIGEST";
+
+    /**
+     * authenticate user using container facilities
+     *
+     * @param response response to use to conduct a dialog if necessary
+     * @return whether authentication was successful
+     * @since 3.0
+     */
+    boolean authenticate(HttpServletResponse response);
 
     /**
      * 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 
+     * 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. 
-     *
+     * If the servlet is not authenticated <code>null</code> is returned.
+     * <p/>
      * <p>Same as the value of the CGI variable AUTH_TYPE.
      *
-     *
-     * @return		one of the static members BASIC_AUTH, 
-     *			FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH
-     *			(suitable for == comparison) or
-     *			the container-specific string indicating
-     *			the authentication scheme, or
-     *			<code>null</code> if the request was 
-     *			not authenticated.     
-     *
+     * @return one of the static members BASIC_AUTH,
+     *         FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH
+     *         (suitable for == comparison) or
+     *         the container-specific string indicating
+     *         the authentication scheme, or
+     *         <code>null</code> if the request was
+     *         not authenticated.
      */
-   
-    public String getAuthType();
-    
-   
-    
+    String getAuthType();
 
     /**
+     * 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.
      *
+     * @return a <code>String</code> specifying the
+     *         portion of the request URI that indicates the context
+     *         of the request
+     */
+    String getContextPath();
+
+    /**
      * 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
-     *
-     *
+     * @return an array of all the <code>Cookies</code>
+     *         included with this request, or <code>null</code>
+     *         if the request has no cookies
      */
-
-    public Cookie[] getCookies();
-    
-    
-    
+    Cookie[] getCookies();
 
     /**
-     *
      * Returns the value of the specified request header
-     * as a <code>long</code> value that represents a 
+     * 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>. 
-     *
+     * <code>If-Modified-Since</code>.
+     * <p/>
      * <p>The date is returned as
      * the number of milliseconds since January 1, 1970 GMT.
      * The header name is case insensitive.
-     *
+     * <p/>
      * <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
-     *				request
-     *
-     * @exception	IllegalArgumentException	If the header value
-     *							can't be converted
-     *							to a date
-     *
+     * @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
+     *         request
+     * @throws IllegalArgumentException If the header value
+     *                                  can't be converted
+     *                                  to a date
      */
-
-    public long getDateHeader(String name);
-    
-    
-    
+    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>.
@@ -150,315 +147,196 @@
      * 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); 
-
-
-
+     * @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
+     */
+    String getHeader(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/>
+     * <p>Some servlet containers do not allow
+     * servlets to access headers using this method, in
+     * which case this method returns <code>null</code>
      *
+     * @return an 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,
+     *         <code>null</code>
+     */
+    Enumeration<String> getHeaderNames();
+
+    /**
      * Returns all the values of the specified request header
      * as an <code>Enumeration</code> of <code>String</code> objects.
-     *
+     * <p/>
      * <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/>
      * <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			an <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
-     *
-     */			
-
-    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>
-     *
-     * @return			an 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,
-     *				<code>null</code>
-     *				
-     *
+     * @param name a <code>String</code> specifying the
+     *             header name
+     * @return an <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
      */
-
-    public Enumeration getHeaderNames();
-    
-    
-    
+    Enumeration<String> getHeaders(String name);
 
     /**
-     *
      * 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/>
      * <p>The header name is case insensitive.
      *
-     * @param name		a <code>String</code> specifying the name
-     *				of a request header
-     *
-     * @return			an integer expressing the value 
-     * 				of the request header or -1
-     *				if the request doesn't have a
-     *				header of this name
-     *
-     * @exception	NumberFormatException		If the header value
-     *							can't be converted
-     *							to an <code>int</code>
+     * @param name a <code>String</code> specifying the name
+     *             of a request header
+     * @return an integer expressing the value
+     *         of the request header or -1
+     *         if the request doesn't have a
+     *         header of this name
+     * @throws NumberFormatException If the header value
+     *                               can't be converted
+     *                               to an <code>int</code>
      */
-
-    public int getIntHeader(String name);
-    
-    
-    
+    int getIntHeader(String name);
 
     /**
-     *
-     * Returns the name of the HTTP method with which this 
+     * 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.
      *
-     * @return			a <code>String</code> 
-     *				specifying the name
-     *				of the method with which
-     *				this request was made
-     *
+     * @return a <code>String</code>
+     *         specifying the name
+     *         of the method with which
+     *         this request was made
      */
- 
-    public String getMethod();
-    
-    
-    
+    String getMethod();
+
+    /**
+     * @param name part name
+     * @return named part
+     * @since 3.0
+     */
+    Part getPart(String name);
+
+    /**
+     * @return all the parts
+     * @since 3.0
+     */
+    Iterable<Part> getParts();
 
     /**
-     *
      * 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/>
      * <p>This method returns <code>null</code> if there
      * was no extra path information.
-     *
+     * <p/>
      * <p>Same as the value of the CGI variable PATH_INFO.
      *
-     *
-     * @return		a <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
-     *
+     * @return a <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();
-    
-
- 
+    String getPathInfo();
 
     /**
-     *
      * Returns any extra path information after the servlet name
      * but before the query string, and translates it to a real
      * path. Same as the value of the CGI variable PATH_TRANSLATED.
-     *
+     * <p/>
      * <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).
-     *
+     * <p/>
      * The web container does not decode this string.
      *
-     *
-     * @return		a <code>String</code> specifying the
-     *			real path, or <code>null</code> if
-     *			the URL does not have any extra path
-     *			information
-     *
-     *
+     * @return a <code>String</code> specifying the
+     *         real path, or <code>null</code> if
+     *         the URL does not have any extra path
+     *         information
      */
-
-    public String getPathTranslated();
-    
-
- 
+    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.
-     *
-     *
-     * @return		a <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. 
-     *
-     * @return		a <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.
+     * of the CGI variable QUERY_STRING.
      *
+     * @return a <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();
-    
-    
-    
+    String getQueryString();
 
     /**
-     *
      * Returns the login of the user making this request, if the
-     * user has been authenticated, or <code>null</code> if the user 
+     * 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 
+     * depends on the browser and type of authentication. Same as the
      * value of the CGI variable REMOTE_USER.
      *
-     * @return		a <code>String</code> specifying the login
-     *			of the user making this request, or <code>null</code>
-     *			if the user login is not known
-     *
+     * @return a <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();
-    
-    
-    
+    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 role		a <code>String</code> specifying the name
-     *				of the role
-     *
-     * @return		a <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>.
-     *
-     * @return		a <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
      * <code>null</code>.
      *
-     *
-     * @return		a <code>String</code> specifying the session
-     *			ID, or <code>null</code> if the request did
-     *			not specify a session ID
-     *
-     * @see		#isRequestedSessionIdValid
-     *
+     * @return a <code>String</code> specifying the session
+     *         ID, or <code>null</code> if the request did
+     *         not specify a session ID
+     * @see #isRequestedSessionIdValid
      */
+    String getRequestedSessionId();
 
-    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:
-     *
-     * 
-
+     * <p/>
+     * <p/>
      * <table summary="Examples of Returned Values">
      * <tr align=left><th>First line of HTTP request      </th>
      * <th>     Returned Value</th>
@@ -467,197 +345,172 @@
      * <td><td>/a.html
      * <tr><td>HEAD /xyz?a=b HTTP/1.1<td><td>/xyz
      * </table>
-     *
+     * <p/>
      * <p>To reconstruct an URL with a scheme and host, use
      * {@link HttpUtils#getRequestURL}.
      *
-     * @return		a <code>String</code> containing
-     *			the part of the URL from the 
-     *			protocol name up to the query string
-     *
-     * @see		HttpUtils#getRequestURL
-     *
+     * @return a <code>String</code> containing
+     *         the part of the URL from the
+     *         protocol name up to the query string
+     * @see HttpUtils#getRequestURL
      */
+    String getRequestURI();
 
-    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/>
      * <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/>
      * <p>This method is useful for creating redirect messages
      * and for reporting errors.
      *
-     * @return		a <code>StringBuffer</code> object containing
-     *			the reconstructed URL
-     *
+     * @return a <code>StringBuffer</code> object containing
+     *         the reconstructed URL
      */
-    public StringBuffer getRequestURL();
-    
+    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/>
      * <p>This method will return an empty string ("") if the
      * servlet used to process this request was matched using
      * the "/*" pattern.
      *
-     * @return		a <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.
-     *
+     * @return a <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.
      */
-
-    public String getServletPath();
-    
-    
-    
+    String getServletPath();
 
     /**
+     * Returns the current session associated with this request,
+     * or if the request does not have a session, creates one.
      *
+     * @return the <code>HttpSession</code> associated
+     *         with this request
+     * @see #getSession(boolean)
+     */
+    HttpSession getSession();
+
+    /**
      * Returns the current <code>HttpSession</code>
      * associated with this request or, if there is no
-     * current session and <code>create</code> is true, returns 
+     * current session and <code>create</code> is true, returns
      * a new session.
-     *
+     * <p/>
      * <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/>
      * <p>To make sure the session is properly maintained,
-     * you must call this method before 
+     * 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()
-     *
-     *
+     * @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()
      */
-
-    public HttpSession getSession(boolean create);
-    
-    
-    
-   
+    HttpSession getSession(boolean create);
 
     /**
+     * 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>.
      *
-     * Returns the current session associated with this request,
-     * or if the request does not have a session, creates one.
-     * 
-     * @return		the <code>HttpSession</code> associated
-     *			with this request
-     *
-     * @see	#getSession(boolean)
-     *
+     * @return a <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 HttpSession getSession();
-    
-    
-    
-    
-    
+    java.security.Principal getUserPrincipal();
 
     /**
+     * Checks whether the requested session ID came in as a cookie.
      *
-     * 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
-     * @see			HttpSessionContext
-     *
+     * @return <code>true</code> if the session ID
+     *         came in as a
+     *         cookie; otherwise, <code>false</code>
+     * @see #getSession
      */
-
-    public boolean isRequestedSessionIdValid();
-    
-    
-    
+    boolean isRequestedSessionIdFromCookie();
 
     /**
-     *
-     * 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
-     *
-     */ 
-
-    public boolean isRequestedSessionIdFromCookie();
-    
-    
-    
+     * @deprecated As of Version 2.1 of the Java Servlet
+     *             API, use {@link #isRequestedSessionIdFromURL}
+     *             instead.
+     */
+    boolean isRequestedSessionIdFromUrl();
 
     /**
-     *
-     * Checks whether the requested session ID came in as part of the 
+     * 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
-     *
+     * @return <code>true</code> if the session ID
+     *         came in as part of a URL; otherwise,
+     *         <code>false</code>
+     * @see #getSession
      */
-    
-    public boolean isRequestedSessionIdFromURL();
-    
-    
-    
-    
-    
+    boolean isRequestedSessionIdFromURL();
+
     /**
+     * Checks whether the requested session ID is still valid.
      *
-     * @deprecated		As of Version 2.1 of the Java Servlet
-     *				API, use {@link #isRequestedSessionIdFromURL}
-     *				instead.
+     * @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
+     * @see HttpSessionContext
+     */
+    boolean isRequestedSessionIdValid();
+
+    /**
+     * 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 role a <code>String</code> specifying the name
+     *             of the role
+     * @return a <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
      */
+    boolean isUserInRole(String role);
 
-    public boolean isRequestedSessionIdFromUrl();
+    /**
+     * @param username username
+     * @param password password
+     * @since 3.0
+     */
+    void login(String username, String password) throws ServletException;
 
+    /**
+     * @since 3.0
+     */
+    void logout() throws ServletException;
 
-    
 }

Modified: geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletRequestWrapper.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletRequestWrapper.java?rev=788194&r1=788193&r2=788194&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletRequestWrapper.java (original)
+++ geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletRequestWrapper.java Wed Jun 24 22:05:48 2009
@@ -20,51 +20,57 @@
 package javax.servlet.http;
 
 import javax.servlet.ServletRequestWrapper;
+import javax.servlet.ServletException;
+
 import java.util.Enumeration;
 
 /**
- * 
  * Provides a convenient implementation of the HttpServletRequest interface that
  * can be subclassed by developers wishing to adapt the request to a Servlet.
  * This class implements the Wrapper or Decorator pattern. Methods default to
  * calling through to the wrapped request object.
- * 
- *
- * @see 	javax.servlet.http.HttpServletRequest
-  * @since	v 2.3
  *
+ * @version $Rev$ $Date$
+ * @since v 2.3
+ * @see javax.servlet.http.HttpServletRequest
  */
 
 
 public class HttpServletRequestWrapper extends ServletRequestWrapper implements HttpServletRequest {
 
-	/** 
-	* Constructs a request object wrapping the given request.
-	* @throws java.lang.IllegalArgumentException if the request is null
-	*/
+    /**
+     * Constructs a request object wrapping the given request.
+     *
+     * @param request request to wrap
+     * @throws java.lang.IllegalArgumentException
+     *          if the request is null
+     */
     public HttpServletRequestWrapper(HttpServletRequest request) {
-	    super(request);
+        super(request);
     }
-    
-    private HttpServletRequest _getHttpServletRequest() {
-	return (HttpServletRequest) super.getRequest();
+
+    private HttpServletRequest getHttpServletRequest() {
+        return (HttpServletRequest) super.getRequest();
+    }
+
+    public boolean authenticate(HttpServletResponse response) {
+        return getHttpServletRequest().authenticate(response);
     }
 
     /**
      * The default behavior of this method is to return getAuthType()
      * on the wrapped request object.
      */
-
     public String getAuthType() {
-	return this._getHttpServletRequest().getAuthType();
+        return getHttpServletRequest().getAuthType();
     }
-   
+
     /**
      * The default behavior of this method is to return getCookies()
      * on the wrapped request object.
      */
     public Cookie[] getCookies() {
-	return this._getHttpServletRequest().getCookies();
+        return getHttpServletRequest().getCookies();
     }
 
     /**
@@ -72,57 +78,65 @@
      * on the wrapped request object.
      */
     public long getDateHeader(String name) {
-	return this._getHttpServletRequest().getDateHeader(name);
+        return 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);
+        return 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);
-    }  
+    public Enumeration<String> getHeaders(String name) {
+        return 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();
+
+    public Enumeration<String> getHeaderNames() {
+        return 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);
+    public int getIntHeader(String name) {
+        return 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();
+        return getHttpServletRequest().getMethod();
+    }
+
+    public Part getPart(String name) {
+        return getHttpServletRequest().getPart(name);
     }
-    
+
+    public Iterable<Part> getParts() {
+        return getHttpServletRequest().getParts();
+    }
+
     /**
      * The default behavior of this method is to return getPathInfo()
      * on the wrapped request object.
      */
     public String getPathInfo() {
-	return this._getHttpServletRequest().getPathInfo();
+        return getHttpServletRequest().getPathInfo();
     }
 
     /**
@@ -130,8 +144,8 @@
      * on the wrapped request object.
      */
 
-     public String getPathTranslated() {
-	return this._getHttpServletRequest().getPathTranslated();
+    public String getPathTranslated() {
+        return getHttpServletRequest().getPathTranslated();
     }
 
     /**
@@ -139,128 +153,128 @@
      * on the wrapped request object.
      */
     public String getContextPath() {
-	return this._getHttpServletRequest().getContextPath();
+        return getHttpServletRequest().getContextPath();
     }
-    
+
     /**
      * The default behavior of this method is to return getQueryString()
      * on the wrapped request object.
      */
     public String getQueryString() {
-	return this._getHttpServletRequest().getQueryString();
+        return getHttpServletRequest().getQueryString();
     }
-    
+
     /**
      * The default behavior of this method is to return getRemoteUser()
      * on the wrapped request object.
      */
     public String getRemoteUser() {
-	return this._getHttpServletRequest().getRemoteUser();
+        return 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);
+        return getHttpServletRequest().isUserInRole(role);
+    }
+
+    public void login(String username, String password) throws ServletException {
+        getHttpServletRequest().login(username, password);
     }
-    
-    
-    
+
+    public void logout() throws ServletException {
+        getHttpServletRequest().logout();
+    }
+
     /**
      * The default behavior of this method is to return getUserPrincipal()
      * on the wrapped request object.
      */
     public java.security.Principal getUserPrincipal() {
-	return this._getHttpServletRequest().getUserPrincipal();
+        return getHttpServletRequest().getUserPrincipal();
     }
-    
-   
+
     /**
      * The default behavior of this method is to return getRequestedSessionId()
      * on the wrapped request object.
      */
     public String getRequestedSessionId() {
-	return this._getHttpServletRequest().getRequestedSessionId();
+        return getHttpServletRequest().getRequestedSessionId();
     }
-    
+
     /**
      * The default behavior of this method is to return getRequestURI()
      * on the wrapped request object.
      */
     public String getRequestURI() {
-	return this._getHttpServletRequest().getRequestURI();
+        return getHttpServletRequest().getRequestURI();
     }
-	/**
+
+    /**
      * The default behavior of this method is to return getRequestURL()
      * on the wrapped request object.
      */
     public StringBuffer getRequestURL() {
-	return this._getHttpServletRequest().getRequestURL();
+        return getHttpServletRequest().getRequestURL();
     }
-	
-    
+
     /**
      * The default behavior of this method is to return getServletPath()
      * on the wrapped request object.
      */
     public String getServletPath() {
-	return this._getHttpServletRequest().getServletPath();
+        return 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);
+        return 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();
+        return getHttpServletRequest().getSession();
     }
-    
+
     /**
      * The default behavior of this method is to return isRequestedSessionIdValid()
      * on the wrapped request object.
-     */ 
+     */
 
     public boolean isRequestedSessionIdValid() {
-	return this._getHttpServletRequest().isRequestedSessionIdValid();
+        return getHttpServletRequest().isRequestedSessionIdValid();
     }
-     
-    
+
     /**
      * The default behavior of this method is to return isRequestedSessionIdFromCookie()
      * on the wrapped request object.
      */
     public boolean isRequestedSessionIdFromCookie() {
-	return this._getHttpServletRequest().isRequestedSessionIdFromCookie();
+        return getHttpServletRequest().isRequestedSessionIdFromCookie();
     }
-    
-    	  /**
+
+    /**
      * The default behavior of this method is to return isRequestedSessionIdFromURL()
      * on the wrapped request object.
-     */ 
+     */
     public boolean isRequestedSessionIdFromURL() {
-	return this._getHttpServletRequest().isRequestedSessionIdFromURL();
+        return getHttpServletRequest().isRequestedSessionIdFromURL();
     }
-    
+
     /**
      * The default behavior of this method is to return isRequestedSessionIdFromUrl()
      * on the wrapped request object.
      */
     public boolean isRequestedSessionIdFromUrl() {
-	return this._getHttpServletRequest().isRequestedSessionIdFromUrl();
+        return getHttpServletRequest().isRequestedSessionIdFromUrl();
     }
 
-
-    
 }

Modified: geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletResponse.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletResponse.java?rev=788194&r1=788193&r2=788194&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletResponse.java (original)
+++ geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletResponse.java Wed Jun 24 22:05:48 2009
@@ -24,307 +24,20 @@
 import javax.servlet.ServletResponse;
 
 /**
- *
  * Extends the {@link ServletResponse} interface to provide HTTP-specific
  * functionality in sending a response.  For example, it has methods
  * to access HTTP headers and cookies.
- *
+ * <p/>
  * <p>The servlet container creates an <code>HttpServletResponse</code> object
  * and passes it as an argument to the servlet's service methods
  * (<code>doGet</code>, <code>doPost</code>, etc).
  *
- * 
- * @author	Various
- * @version	$Version$
- *
- * @see		javax.servlet.ServletResponse
- *
+ * @version $Rev$ $Date$
+ * @see javax.servlet.ServletResponse
  */
 
 
-
 public interface HttpServletResponse extends ServletResponse {
-
-    /**
-     * Adds the specified cookie to the response.  This method can be called
-     * multiple times to set more than one cookie.
-     *
-     * @param cookie the Cookie to return to the client
-     *
-     */
-
-    public void addCookie(Cookie cookie);
-
-    /**
-     * Returns a boolean indicating whether the named response header 
-     * has already been set.
-     * 
-     * @param	name	the header name
-     * @return		<code>true</code> if the named response header 
-     *			has already been set; 
-     * 			<code>false</code> otherwise
-     */
-
-    public boolean containsHeader(String name);
-
-    /**
-     * Encodes the specified URL by including the session ID in it,
-     * or, if encoding is not needed, returns the URL unchanged.
-     * The implementation of this method includes the logic to
-     * determine whether the session ID needs to be encoded in the URL.
-     * For example, if the browser supports cookies, or session
-     * tracking is turned off, URL encoding is unnecessary.
-     * 
-     * <p>For robust session tracking, all URLs emitted by a servlet 
-     * should be run through this
-     * method.  Otherwise, URL rewriting cannot be used with browsers
-     * which do not support cookies.
-     *
-     * @param	url	the url to be encoded.
-     * @return		the encoded URL if encoding is needed;
-     * 			the unchanged URL otherwise.
-     */
-
-    public String encodeURL(String url);
-
-    /**
-     * Encodes the specified URL for use in the
-     * <code>sendRedirect</code> method or, if encoding is not needed,
-     * returns the URL unchanged.  The implementation of this method
-     * includes the logic to determine whether the session ID
-     * needs to be encoded in the URL.  Because the rules for making
-     * this determination can differ from those used to decide whether to
-     * encode a normal link, this method is separated from the
-     * <code>encodeURL</code> method.
-     * 
-     * <p>All URLs sent to the <code>HttpServletResponse.sendRedirect</code>
-     * method should be run through this method.  Otherwise, URL
-     * rewriting cannot be used with browsers which do not support
-     * cookies.
-     *
-     * @param	url	the url to be encoded.
-     * @return		the encoded URL if encoding is needed;
-     * 			the unchanged URL otherwise.
-     *
-     * @see #sendRedirect
-     * @see #encodeUrl
-     */
-
-    public String encodeRedirectURL(String url);
-
-    /**
-     * @deprecated	As of version 2.1, use encodeURL(String url) instead
-     *
-     * @param	url	the url to be encoded.
-     * @return		the encoded URL if encoding is needed; 
-     * 			the unchanged URL otherwise.
-     */
-
-    public String encodeUrl(String url);
-    
-    /**
-     * @deprecated	As of version 2.1, use 
-     *			encodeRedirectURL(String url) instead
-     *
-     * @param	url	the url to be encoded.
-     * @return		the encoded URL if encoding is needed; 
-     * 			the unchanged URL otherwise.
-     */
-
-    public String encodeRedirectUrl(String url);
-
-    /**
-     * Sends an error response to the client using the specified
-     * status.  The server defaults to creating the
-     * response to look like an HTML-formatted server error page
-     * containing the specified message, setting the content type
-     * to "text/html", leaving cookies and other headers unmodified.
-     *
-     * If an error-page declaration has been made for the web application
-     * corresponding to the status code passed in, it will be served back in 
-     * preference to the suggested msg parameter. 
-     *
-     * <p>If the response has already been committed, this method throws 
-     * an IllegalStateException.
-     * After using this method, the response should be considered
-     * to be committed and should not be written to.
-     *
-     * @param	sc	the error status code
-     * @param	msg	the descriptive message
-     * @exception	IOException	If an input or output exception occurs
-     * @exception	IllegalStateException	If the response was committed
-     */
-   
-    public void sendError(int sc, String msg) throws IOException;
-
-    /**
-     * Sends an error response to the client using the specified status
-     * code and clearing the buffer. 
-     * <p>If the response has already been committed, this method throws 
-     * an IllegalStateException.
-     * After using this method, the response should be considered
-     * to be committed and should not be written to.
-     *
-     * @param	sc	the error status code
-     * @exception	IOException	If an input or output exception occurs
-     * @exception	IllegalStateException	If the response was committed
-     *						before this method call
-     */
-
-    public void sendError(int sc) throws IOException;
-
-    /**
-     * Sends a temporary redirect response to the client using the
-     * specified redirect location URL.  This method can accept relative URLs;
-     * the servlet container must convert the relative URL to an absolute URL
-     * before sending the response to the client. If the location is relative 
-     * without a leading '/' the container interprets it as relative to
-     * the current request URI. If the location is relative with a leading
-     * '/' the container interprets it as relative to the servlet container root.
-     *
-     * <p>If the response has already been committed, this method throws 
-     * an IllegalStateException.
-     * After using this method, the response should be considered
-     * to be committed and should not be written to.
-     *
-     * @param		location	the redirect location URL
-     * @exception	IOException	If an input or output exception occurs
-     * @exception	IllegalStateException	If the response was committed or
- if a partial URL is given and cannot be converted into a valid URL
-     */
-
-    public void sendRedirect(String location) throws IOException;
-    
-    /**
-     * 
-     * Sets a response header with the given name and
-     * date-value.  The date is specified in terms of
-     * milliseconds since the epoch.  If the header had already
-     * been set, the new value overwrites the previous one.  The
-     * <code>containsHeader</code> method can be used to test for the
-     * presence of a header before setting its value.
-     * 
-     * @param	name	the name of the header to set
-     * @param	date	the assigned date value
-     * 
-     * @see #containsHeader
-     * @see #addDateHeader
-     */
-
-    public void setDateHeader(String name, long date);
-    
-    /**
-     * 
-     * Adds a response header with the given name and
-     * date-value.  The date is specified in terms of
-     * milliseconds since the epoch.  This method allows response headers 
-     * to have multiple values.
-     * 
-     * @param	name	the name of the header to set
-     * @param	date	the additional date value
-     * 
-     * @see #setDateHeader
-     */
-
-    public void addDateHeader(String name, long date);
-    
-    /**
-     *
-     * Sets a response header with the given name and value.
-     * If the header had already been set, the new value overwrites the
-     * previous one.  The <code>containsHeader</code> method can be
-     * used to test for the presence of a header before setting its
-     * value.
-     * 
-     * @param	name	the name of the header
-     * @param	value	the header value  If it contains octet string,
-     *		it should be encoded according to RFC 2047
-     *		(http://www.ietf.org/rfc/rfc2047.txt)
-     *
-     * @see #containsHeader
-     * @see #addHeader
-     */
-
-    public void setHeader(String name, String value);
-    
-    /**
-     * Adds a response header with the given name and value.
-     * This method allows response headers to have multiple values.
-     * 
-     * @param	name	the name of the header
-     * @param	value	the additional header value   If it contains
-     *		octet string, it should be encoded
-     *		according to RFC 2047
-     *		(http://www.ietf.org/rfc/rfc2047.txt)
-     *
-     * @see #setHeader
-     */
-
-    public void addHeader(String name, String value);
-
-    /**
-     * Sets a response header with the given name and
-     * integer value.  If the header had already been set, the new value
-     * overwrites the previous one.  The <code>containsHeader</code>
-     * method can be used to test for the presence of a header before
-     * setting its value.
-     *
-     * @param	name	the name of the header
-     * @param	value	the assigned integer value
-     *
-     * @see #containsHeader
-     * @see #addIntHeader
-     */
-
-    public void setIntHeader(String name, int value);
-
-    /**
-     * Adds a response header with the given name and
-     * integer value.  This method allows response headers to have multiple
-     * values.
-     *
-     * @param	name	the name of the header
-     * @param	value	the assigned integer value
-     *
-     * @see #setIntHeader
-     */
-
-    public void addIntHeader(String name, int value);
-
-
-    
-    /**
-     * Sets the status code for this response.  This method is used to
-     * set the return status code when there is no error (for example,
-     * for the status codes SC_OK or SC_MOVED_TEMPORARILY).  If there
-     * is an error, and the caller wishes to invoke an error-page defined
-     * in the web application, the <code>sendError</code> method should be used
-     * instead.
-     * <p> The container clears the buffer and sets the Location header, preserving
-     * cookies and other headers.
-     *
-     * @param	sc	the status code
-     *
-     * @see #sendError
-     */
-
-    public void setStatus(int sc);
-  
-    /**
-     * @deprecated As of version 2.1, due to ambiguous meaning of the 
-     * message parameter. To set a status code 
-     * use <code>setStatus(int)</code>, to send an error with a description
-     * use <code>sendError(int, String)</code>.
-     *
-     * Sets the status code and message for this response.
-     * 
-     * @param	sc	the status code
-     * @param	sm	the status message
-     */
-
-    public void setStatus(int sc, String sm);
-
-    
     /*
      * Server status codes; see RFC 2068.
      */
@@ -333,63 +46,63 @@
      * Status code (100) indicating the client can continue.
      */
 
-    public static final int SC_CONTINUE = 100;
+    int SC_CONTINUE = 100;
+
 
-    
     /**
      * Status code (101) indicating the server is switching protocols
      * according to Upgrade header.
      */
 
-    public static final int SC_SWITCHING_PROTOCOLS = 101;
+    int SC_SWITCHING_PROTOCOLS = 101;
 
     /**
      * Status code (200) indicating the request succeeded normally.
      */
 
-    public static final int SC_OK = 200;
+    int SC_OK = 200;
 
     /**
      * Status code (201) indicating the request succeeded and created
      * a new resource on the server.
      */
 
-    public static final int SC_CREATED = 201;
+    int SC_CREATED = 201;
 
     /**
      * Status code (202) indicating that a request was accepted for
      * processing, but was not completed.
      */
 
-    public static final int SC_ACCEPTED = 202;
+    int SC_ACCEPTED = 202;
 
     /**
      * Status code (203) indicating that the meta information presented
      * by the client did not originate from the server.
      */
 
-    public static final int SC_NON_AUTHORITATIVE_INFORMATION = 203;
+    int SC_NON_AUTHORITATIVE_INFORMATION = 203;
 
     /**
      * Status code (204) indicating that the request succeeded but that
      * there was no new information to return.
      */
 
-    public static final int SC_NO_CONTENT = 204;
+    int SC_NO_CONTENT = 204;
 
     /**
      * Status code (205) indicating that the agent <em>SHOULD</em> reset
      * the document view which caused the request to be sent.
      */
 
-    public static final int SC_RESET_CONTENT = 205;
+    int SC_RESET_CONTENT = 205;
 
     /**
      * Status code (206) indicating that the server has fulfilled
      * the partial GET request for the resource.
      */
 
-    public static final int SC_PARTIAL_CONTENT = 206;
+    int SC_PARTIAL_CONTENT = 206;
 
     /**
      * Status code (300) indicating that the requested resource
@@ -397,7 +110,7 @@
      * its own specific location.
      */
 
-    public static final int SC_MULTIPLE_CHOICES = 300;
+    int SC_MULTIPLE_CHOICES = 300;
 
     /**
      * Status code (301) indicating that the resource has permanently
@@ -405,42 +118,42 @@
      * new URI with their requests.
      */
 
-    public static final int SC_MOVED_PERMANENTLY = 301;
+    int SC_MOVED_PERMANENTLY = 301;
 
     /**
      * Status code (302) indicating that the resource has temporarily
      * moved to another location, but that future references should
      * still use the original URI to access the resource.
-     *
+     * <p/>
      * This definition is being retained for backwards compatibility.
      * SC_FOUND is now the preferred definition.
      */
 
-    public static final int SC_MOVED_TEMPORARILY = 302;
+    int SC_MOVED_TEMPORARILY = 302;
 
     /**
-    * Status code (302) indicating that the resource reside
-    * temporarily under a different URI. Since the redirection might
-    * be altered on occasion, the client should continue to use the
-    * Request-URI for future requests.(HTTP/1.1) To represent the
-    * status code (302), it is recommended to use this variable.
-    */
+     * Status code (302) indicating that the resource reside
+     * temporarily under a different URI. Since the redirection might
+     * be altered on occasion, the client should continue to use the
+     * Request-URI for future requests.(HTTP/1.1) To represent the
+     * status code (302), it is recommended to use this variable.
+     */
 
-    public static final int SC_FOUND = 302;
+    int SC_FOUND = 302;
 
     /**
      * Status code (303) indicating that the response to the request
      * can be found under a different URI.
      */
 
-    public static final int SC_SEE_OTHER = 303;
+    int SC_SEE_OTHER = 303;
 
     /**
      * Status code (304) indicating that a conditional GET operation
      * found that the resource was available and not modified.
      */
 
-    public static final int SC_NOT_MODIFIED = 304;
+    int SC_NOT_MODIFIED = 304;
 
     /**
      * Status code (305) indicating that the requested resource
@@ -448,50 +161,50 @@
      * <code><em>Location</em></code> field.
      */
 
-    public static final int SC_USE_PROXY = 305;
+    int SC_USE_PROXY = 305;
 
-     /**
-     * Status code (307) indicating that the requested resource 
+    /**
+     * Status code (307) indicating that the requested resource
      * resides temporarily under a different URI. The temporary URI
-     * <em>SHOULD</em> be given by the <code><em>Location</em></code> 
+     * <em>SHOULD</em> be given by the <code><em>Location</em></code>
      * field in the response.
      */
 
-     public static final int SC_TEMPORARY_REDIRECT = 307;
+    int SC_TEMPORARY_REDIRECT = 307;
 
     /**
      * Status code (400) indicating the request sent by the client was
      * syntactically incorrect.
      */
 
-    public static final int SC_BAD_REQUEST = 400;
+    int SC_BAD_REQUEST = 400;
 
     /**
      * Status code (401) indicating that the request requires HTTP
      * authentication.
      */
 
-    public static final int SC_UNAUTHORIZED = 401;
+    int SC_UNAUTHORIZED = 401;
 
     /**
      * Status code (402) reserved for future use.
      */
 
-    public static final int SC_PAYMENT_REQUIRED = 402;
+    int SC_PAYMENT_REQUIRED = 402;
 
     /**
      * Status code (403) indicating the server understood the request
      * but refused to fulfill it.
      */
 
-    public static final int SC_FORBIDDEN = 403;
+    int SC_FORBIDDEN = 403;
 
     /**
      * Status code (404) indicating that the requested resource is not
      * available.
      */
 
-    public static final int SC_NOT_FOUND = 404;
+    int SC_NOT_FOUND = 404;
 
     /**
      * Status code (405) indicating that the method specified in the
@@ -499,7 +212,7 @@
      * identified by the <code><em>Request-URI</em></code>.
      */
 
-    public static final int SC_METHOD_NOT_ALLOWED = 405;
+    int SC_METHOD_NOT_ALLOWED = 405;
 
     /**
      * Status code (406) indicating that the resource identified by the
@@ -508,21 +221,21 @@
      * headers sent in the request.
      */
 
-    public static final int SC_NOT_ACCEPTABLE = 406;
+    int SC_NOT_ACCEPTABLE = 406;
 
     /**
      * Status code (407) indicating that the client <em>MUST</em> first
      * authenticate itself with the proxy.
      */
 
-    public static final int SC_PROXY_AUTHENTICATION_REQUIRED = 407;
+    int SC_PROXY_AUTHENTICATION_REQUIRED = 407;
 
     /**
      * Status code (408) indicating that the client did not produce a
      * request within the time that the server was prepared to wait.
      */
 
-    public static final int SC_REQUEST_TIMEOUT = 408;
+    int SC_REQUEST_TIMEOUT = 408;
 
     /**
      * Status code (409) indicating that the request could not be
@@ -530,7 +243,7 @@
      * resource.
      */
 
-    public static final int SC_CONFLICT = 409;
+    int SC_CONFLICT = 409;
 
     /**
      * Status code (410) indicating that the resource is no longer
@@ -538,14 +251,14 @@
      * This condition <em>SHOULD</em> be considered permanent.
      */
 
-    public static final int SC_GONE = 410;
+    int SC_GONE = 410;
 
     /**
      * Status code (411) indicating that the request cannot be handled
      * without a defined <code><em>Content-Length</em></code>.
      */
 
-    public static final int SC_LENGTH_REQUIRED = 411;
+    int SC_LENGTH_REQUIRED = 411;
 
     /**
      * Status code (412) indicating that the precondition given in one
@@ -553,7 +266,7 @@
      * was tested on the server.
      */
 
-    public static final int SC_PRECONDITION_FAILED = 412;
+    int SC_PRECONDITION_FAILED = 412;
 
     /**
      * Status code (413) indicating that the server is refusing to process
@@ -561,7 +274,7 @@
      * willing or able to process.
      */
 
-    public static final int SC_REQUEST_ENTITY_TOO_LARGE = 413;
+    int SC_REQUEST_ENTITY_TOO_LARGE = 413;
 
     /**
      * Status code (414) indicating that the server is refusing to service
@@ -569,7 +282,7 @@
      * than the server is willing to interpret.
      */
 
-    public static final int SC_REQUEST_URI_TOO_LONG = 414;
+    int SC_REQUEST_URI_TOO_LONG = 414;
 
     /**
      * Status code (415) indicating that the server is refusing to service
@@ -577,35 +290,35 @@
      * supported by the requested resource for the requested method.
      */
 
-    public static final int SC_UNSUPPORTED_MEDIA_TYPE = 415;
+    int SC_UNSUPPORTED_MEDIA_TYPE = 415;
 
     /**
      * Status code (416) indicating that the server cannot serve the
      * requested byte range.
      */
 
-    public static final int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
+    int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
 
     /**
      * Status code (417) indicating that the server could not meet the
      * expectation given in the Expect request header.
      */
 
-    public static final int SC_EXPECTATION_FAILED = 417;
+    int SC_EXPECTATION_FAILED = 417;
 
     /**
      * Status code (500) indicating an error inside the HTTP server
      * which prevented it from fulfilling the request.
      */
 
-    public static final int SC_INTERNAL_SERVER_ERROR = 500;
+    int SC_INTERNAL_SERVER_ERROR = 500;
 
     /**
      * Status code (501) indicating the HTTP server does not support
      * the functionality needed to fulfill the request.
      */
 
-    public static final int SC_NOT_IMPLEMENTED = 501;
+    int SC_NOT_IMPLEMENTED = 501;
 
     /**
      * Status code (502) indicating that the HTTP server received an
@@ -613,14 +326,14 @@
      * proxy or gateway.
      */
 
-    public static final int SC_BAD_GATEWAY = 502;
+    int SC_BAD_GATEWAY = 502;
 
     /**
      * Status code (503) indicating that the HTTP server is
      * temporarily overloaded, and unable to handle the request.
      */
 
-    public static final int SC_SERVICE_UNAVAILABLE = 503;
+    int SC_SERVICE_UNAVAILABLE = 503;
 
     /**
      * Status code (504) indicating that the server did not receive
@@ -628,7 +341,7 @@
      * a gateway or proxy.
      */
 
-    public static final int SC_GATEWAY_TIMEOUT = 504;
+    int SC_GATEWAY_TIMEOUT = 504;
 
     /**
      * Status code (505) indicating that the server does not support
@@ -636,5 +349,278 @@
      * in the request message.
      */
 
-    public static final int SC_HTTP_VERSION_NOT_SUPPORTED = 505;
+    int SC_HTTP_VERSION_NOT_SUPPORTED = 505;
+
+    /**
+     * Adds the specified cookie to the response.  This method can be called
+     * multiple times to set more than one cookie.
+     *
+     * @param cookie the Cookie to return to the client
+     */
+
+    void addCookie(Cookie cookie);
+
+    /**
+     * Adds a response header with the given name and
+     * date-value.  The date is specified in terms of
+     * milliseconds since the epoch.  This method allows response headers
+     * to have multiple values.
+     *
+     * @param name the name of the header to set
+     * @param date the additional date value
+     * @see #setDateHeader
+     */
+
+    void addDateHeader(String name, long date);
+
+    /**
+     * Adds a response header with the given name and value.
+     * This method allows response headers to have multiple values.
+     *
+     * @param name  the name of the header
+     * @param value the additional header value   If it contains
+     *              octet string, it should be encoded
+     *              according to RFC 2047
+     *              (http://www.ietf.org/rfc/rfc2047.txt)
+     * @see #setHeader
+     */
+    void addHeader(String name, String value);
+
+    /**
+     * Adds a response header with the given name and
+     * integer value.  This method allows response headers to have multiple
+     * values.
+     *
+     * @param name  the name of the header
+     * @param value the assigned integer value
+     * @see #setIntHeader
+     */
+    void addIntHeader(String name, int value);
+
+    /**
+     * Returns a boolean indicating whether the named response header
+     * has already been set.
+     *
+     * @param name the header name
+     * @return <code>true</code> if the named response header
+     *         has already been set;
+     *         <code>false</code> otherwise
+     */
+    boolean containsHeader(String name);
+
+    /**
+     * Encodes the specified URL by including the session ID in it,
+     * or, if encoding is not needed, returns the URL unchanged.
+     * The implementation of this method includes the logic to
+     * determine whether the session ID needs to be encoded in the URL.
+     * For example, if the browser supports cookies, or session
+     * tracking is turned off, URL encoding is unnecessary.
+     * <p/>
+     * <p>For robust session tracking, all URLs emitted by a servlet
+     * should be run through this
+     * method.  Otherwise, URL rewriting cannot be used with browsers
+     * which do not support cookies.
+     *
+     * @param url the url to be encoded.
+     * @return the encoded URL if encoding is needed;
+     *         the unchanged URL otherwise.
+     */
+    String encodeURL(String url);
+
+    /**
+     * Encodes the specified URL for use in the
+     * <code>sendRedirect</code> method or, if encoding is not needed,
+     * returns the URL unchanged.  The implementation of this method
+     * includes the logic to determine whether the session ID
+     * needs to be encoded in the URL.  Because the rules for making
+     * this determination can differ from those used to decide whether to
+     * encode a normal link, this method is separated from the
+     * <code>encodeURL</code> method.
+     * <p/>
+     * <p>All URLs sent to the <code>HttpServletResponse.sendRedirect</code>
+     * method should be run through this method.  Otherwise, URL
+     * rewriting cannot be used with browsers which do not support
+     * cookies.
+     *
+     * @param url the url to be encoded.
+     * @return the encoded URL if encoding is needed;
+     *         the unchanged URL otherwise.
+     * @see #sendRedirect
+     * @see #encodeUrl
+     */
+    String encodeRedirectURL(String url);
+
+    /**
+     * @param url the url to be encoded.
+     * @return the encoded URL if encoding is needed;
+     *         the unchanged URL otherwise.
+     * @deprecated As of version 2.1, use encodeURL(String url) instead
+     */
+    String encodeUrl(String url);
+
+    /**
+     * @param url the url to be encoded.
+     * @return the encoded URL if encoding is needed;
+     *         the unchanged URL otherwise.
+     * @deprecated As of version 2.1, use
+     *             encodeRedirectURL(String url) instead
+     */
+    String encodeRedirectUrl(String url);
+
+    /**
+     * @param name header name
+     * @return header value
+     * @since 3.0
+     */
+    String getHeader(String name);
+
+    /**
+     * @return all the header names
+     * @since 3.0
+     */
+    Iterable<String> getHeaderNames();
+
+    /**
+     * @return all the header values
+     * @since 3.0
+     */
+    Iterable<String> getHeaders();
+
+    /**
+     * @return current http status
+     * @since 3.0
+     */
+    int getStatus();
+
+    /**
+     * Sends an error response to the client using the specified status
+     * code and clearing the buffer.
+     * <p>If the response has already been committed, this method throws
+     * an IllegalStateException.
+     * After using this method, the response should be considered
+     * to be committed and should not be written to.
+     *
+     * @param sc the error status code
+     * @throws IOException           If an input or output exception occurs
+     * @throws IllegalStateException If the response was committed
+     *                               before this method call
+     */
+    void sendError(int sc) throws IOException;
+
+    /**
+     * Sends an error response to the client using the specified
+     * status.  The server defaults to creating the
+     * response to look like an HTML-formatted server error page
+     * containing the specified message, setting the content type
+     * to "text/html", leaving cookies and other headers unmodified.
+     * <p/>
+     * If an error-page declaration has been made for the web application
+     * corresponding to the status code passed in, it will be served back in
+     * preference to the suggested msg parameter.
+     * <p/>
+     * <p>If the response has already been committed, this method throws
+     * an IllegalStateException.
+     * After using this method, the response should be considered
+     * to be committed and should not be written to.
+     *
+     * @param sc  the error status code
+     * @param msg the descriptive message
+     * @throws IOException           If an input or output exception occurs
+     * @throws IllegalStateException If the response was committed
+     */
+    void sendError(int sc, String msg) throws IOException;
+
+    /**
+     * Sends a temporary redirect response to the client using the
+     * specified redirect location URL.  This method can accept relative URLs;
+     * the servlet container must convert the relative URL to an absolute URL
+     * before sending the response to the client. If the location is relative
+     * without a leading '/' the container interprets it as relative to
+     * the current request URI. If the location is relative with a leading
+     * '/' the container interprets it as relative to the servlet container root.
+     * <p/>
+     * <p>If the response has already been committed, this method throws
+     * an IllegalStateException.
+     * After using this method, the response should be considered
+     * to be committed and should not be written to.
+     *
+     * @param location the redirect location URL
+     * @throws IOException           If an input or output exception occurs
+     * @throws IllegalStateException If the response was committed or
+     *                               if a partial URL is given and cannot be converted into a valid URL
+     */
+    void sendRedirect(String location) throws IOException;
+
+    /**
+     * Sets a response header with the given name and
+     * date-value.  The date is specified in terms of
+     * milliseconds since the epoch.  If the header had already
+     * been set, the new value overwrites the previous one.  The
+     * <code>containsHeader</code> method can be used to test for the
+     * presence of a header before setting its value.
+     *
+     * @param name the name of the header to set
+     * @param date the assigned date value
+     * @see #containsHeader
+     * @see #addDateHeader
+     */
+    void setDateHeader(String name, long date);
+
+    /**
+     * Sets a response header with the given name and value.
+     * If the header had already been set, the new value overwrites the
+     * previous one.  The <code>containsHeader</code> method can be
+     * used to test for the presence of a header before setting its
+     * value.
+     *
+     * @param name  the name of the header
+     * @param value the header value  If it contains octet string,
+     *              it should be encoded according to RFC 2047
+     *              (http://www.ietf.org/rfc/rfc2047.txt)
+     * @see #containsHeader
+     * @see #addHeader
+     */
+    void setHeader(String name, String value);
+
+    /**
+     * Sets a response header with the given name and
+     * integer value.  If the header had already been set, the new value
+     * overwrites the previous one.  The <code>containsHeader</code>
+     * method can be used to test for the presence of a header before
+     * setting its value.
+     *
+     * @param name  the name of the header
+     * @param value the assigned integer value
+     * @see #containsHeader
+     * @see #addIntHeader
+     */
+    void setIntHeader(String name, int value);
+
+    /**
+     * Sets the status code for this response.  This method is used to
+     * set the return status code when there is no error (for example,
+     * for the status codes SC_OK or SC_MOVED_TEMPORARILY).  If there
+     * is an error, and the caller wishes to invoke an error-page defined
+     * in the web application, the <code>sendError</code> method should be used
+     * instead.
+     * <p> The container clears the buffer and sets the Location header, preserving
+     * cookies and other headers.
+     *
+     * @param sc the status code
+     * @see #sendError
+     */
+    void setStatus(int sc);
+
+    /**
+     * @param sc the status code
+     * @param sm the status message
+     * @deprecated As of version 2.1, due to ambiguous meaning of the
+     *             message parameter. To set a status code
+     *             use <code>setStatus(int)</code>, to send an error with a description
+     *             use <code>sendError(int, String)</code>.
+     *             <p/>
+     *             Sets the status code and message for this response.
+     */
+    void setStatus(int sc, String sm);
+
 }

Modified: geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletResponseWrapper.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletResponseWrapper.java?rev=788194&r1=788193&r2=788194&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletResponseWrapper.java (original)
+++ geronimo/specs/trunk/geronimo-servlet_3.0_spec/src/main/java/javax/servlet/http/HttpServletResponseWrapper.java Wed Jun 24 22:05:48 2009
@@ -24,41 +24,39 @@
 import javax.servlet.ServletResponseWrapper;
 
 /**
- * 
  * Provides a convenient implementation of the HttpServletResponse interface that
  * can be subclassed by developers wishing to adapt the response from a Servlet.
  * This class implements the Wrapper or Decorator pattern. Methods default to
  * calling through to the wrapped response object.
- * 
- * @author 	Various
- * @version 	$Version$
-  * @since	v 2.3
- *
- * @see 	javax.servlet.http.HttpServletResponse
  *
+ * @version $Rev$ $Date$
+ * @since v 2.3
+ * @see javax.servlet.http.HttpServletResponse
  */
 
 public class HttpServletResponseWrapper extends ServletResponseWrapper implements HttpServletResponse {
 
 
-    /** 
-    * Constructs a response adaptor wrapping the given response.
-    * @throws java.lang.IllegalArgumentException if the response is null
-    */
+    /**
+     * Constructs a response adaptor wrapping the given response.
+     *
+     * @throws java.lang.IllegalArgumentException
+     *          if the response is null
+     */
     public HttpServletResponseWrapper(HttpServletResponse response) {
-	    super(response);
+        super(response);
     }
-    
-    private HttpServletResponse _getHttpServletResponse() {
-	return (HttpServletResponse) super.getResponse();
+
+    private HttpServletResponse getHttpServletResponse() {
+        return (HttpServletResponse) super.getResponse();
     }
-    
+
     /**
      * The default behavior of this method is to call addCookie(Cookie cookie)
      * on the wrapped response object.
      */
     public void addCookie(Cookie cookie) {
-	this._getHttpServletResponse().addCookie(cookie);
+        getHttpServletResponse().addCookie(cookie);
     }
 
     /**
@@ -66,17 +64,17 @@
      * on the wrapped response object.
      */
 
- 
+
     public boolean containsHeader(String name) {
-	return this._getHttpServletResponse().containsHeader(name);
+        return getHttpServletResponse().containsHeader(name);
     }
-    
+
     /**
      * The default behavior of this method is to call encodeURL(String url)
      * on the wrapped response object.
      */
     public String encodeURL(String url) {
-	return this._getHttpServletResponse().encodeURL(url);
+        return getHttpServletResponse().encodeURL(url);
     }
 
     /**
@@ -84,7 +82,7 @@
      * on the wrapped response object.
      */
     public String encodeRedirectURL(String url) {
-	return this._getHttpServletResponse().encodeRedirectURL(url);
+        return getHttpServletResponse().encodeRedirectURL(url);
     }
 
     /**
@@ -92,23 +90,39 @@
      * on the wrapped response object.
      */
     public String encodeUrl(String url) {
-	return this._getHttpServletResponse().encodeUrl(url);
+        return getHttpServletResponse().encodeUrl(url);
     }
-    
+
     /**
      * The default behavior of this method is to return encodeRedirectUrl(String url)
      * on the wrapped response object.
      */
     public String encodeRedirectUrl(String url) {
-	return this._getHttpServletResponse().encodeRedirectUrl(url);
+        return getHttpServletResponse().encodeRedirectUrl(url);
+    }
+
+    public String getHeader(String name) {
+        return getHttpServletResponse().getHeader(name);
     }
-    
+
+    public Iterable<String> getHeaderNames() {
+        return getHttpServletResponse().getHeaderNames();
+    }
+
+    public Iterable<String> getHeaders() {
+        return getHttpServletResponse().getHeaders();
+    }
+
+    public int getStatus() {
+        return getHttpServletResponse().getStatus();
+    }
+
     /**
      * The default behavior of this method is to call sendError(int sc, String msg)
      * on the wrapped response object.
      */
     public void sendError(int sc, String msg) throws IOException {
-	this._getHttpServletResponse().sendError(sc, msg);
+        getHttpServletResponse().sendError(sc, msg);
     }
 
     /**
@@ -118,7 +132,7 @@
 
 
     public void sendError(int sc) throws IOException {
-	this._getHttpServletResponse().sendError(sc);
+        getHttpServletResponse().sendError(sc);
     }
 
     /**
@@ -126,55 +140,55 @@
      * on the wrapped response object.
      */
     public void sendRedirect(String location) throws IOException {
-	this._getHttpServletResponse().sendRedirect(location);
+        getHttpServletResponse().sendRedirect(location);
     }
-    
+
     /**
      * The default behavior of this method is to call setDateHeader(String name, long date)
      * on the wrapped response object.
      */
     public void setDateHeader(String name, long date) {
-	this._getHttpServletResponse().setDateHeader(name, date);
+        getHttpServletResponse().setDateHeader(name, date);
     }
-    
+
     /**
      * The default behavior of this method is to call addDateHeader(String name, long date)
      * on the wrapped response object.
      */
-   public void addDateHeader(String name, long date) {
-	this._getHttpServletResponse().addDateHeader(name, date);
+    public void addDateHeader(String name, long date) {
+        getHttpServletResponse().addDateHeader(name, date);
     }
-    
+
     /**
      * The default behavior of this method is to return setHeader(String name, String value)
      * on the wrapped response object.
      */
     public void setHeader(String name, String value) {
-	this._getHttpServletResponse().setHeader(name, value);
+        getHttpServletResponse().setHeader(name, value);
     }
-    
+
     /**
      * The default behavior of this method is to return addHeader(String name, String value)
      * on the wrapped response object.
      */
-     public void addHeader(String name, String value) {
-	this._getHttpServletResponse().addHeader(name, value);
+    public void addHeader(String name, String value) {
+        getHttpServletResponse().addHeader(name, value);
     }
-    
+
     /**
      * The default behavior of this method is to call setIntHeader(String name, int value)
      * on the wrapped response object.
      */
     public void setIntHeader(String name, int value) {
-	this._getHttpServletResponse().setIntHeader(name, value);
+        getHttpServletResponse().setIntHeader(name, value);
     }
-    
+
     /**
      * The default behavior of this method is to call addIntHeader(String name, int value)
      * on the wrapped response object.
      */
     public void addIntHeader(String name, int value) {
-	this._getHttpServletResponse().addIntHeader(name, value);
+        getHttpServletResponse().addIntHeader(name, value);
     }
 
     /**
@@ -184,16 +198,16 @@
 
 
     public void setStatus(int sc) {
-	this._getHttpServletResponse().setStatus(sc);
+        getHttpServletResponse().setStatus(sc);
     }
-    
+
     /**
      * The default behavior of this method is to call setStatus(int sc, String sm)
      * on the wrapped response object.
      */
-     public void setStatus(int sc, String sm) {
-	this._getHttpServletResponse().setStatus(sc, sm);
+    public void setStatus(int sc, String sm) {
+        getHttpServletResponse().setStatus(sc, sm);
     }
 
-   
+
 }



Mime
View raw message