jfarcand 2003/03/05 11:42:48 Modified: jsr154/src/share/dtd web-app_2_4.xsd jsr154/src/share/javax/servlet ServletContext.java ServletContextAttributeListener.java ServletContextListener.java ServletRequest.java ServletRequestWrapper.java ServletResponse.java SingleThreadModel.java jsr154/src/share/javax/servlet/http HttpServlet.java HttpServletRequest.java HttpServletResponse.java HttpSessionListener.java Log: Apply patch submitted by Yutaka Yoshida. Revision Changes Path 1.9 +34 -48 jakarta-servletapi-5/jsr154/src/share/dtd/web-app_2_4.xsd Index: web-app_2_4.xsd =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr154/src/share/dtd/web-app_2_4.xsd,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- web-app_2_4.xsd 14 Feb 2003 19:34:44 -0000 1.8 +++ web-app_2_4.xsd 5 Mar 2003 19:42:47 -0000 1.9 @@ -8,7 +8,7 @@ version="2.4"> <xsd:annotation> <xsd:documentation> - @(#)web-app_2_4.xsds 1.54 03/02/11 + @(#)web-app_2_4.xsds 1.55 03/02/19 </xsd:documentation> </xsd:annotation> @@ -109,7 +109,19 @@ <xsd:documentation> The web-app element is the root of the deployment - descriptor for a web application. + descriptor for a web application. Note that the sub-elements + of this element can be in the arbitrary order. Because of + that, the multiplicity of the elements of distributable, + session-config, welcome-file-list, jsp-config, login-config, + and locale-encoding-mapping-list was changed from "?" to "*" + in this schema. However, the deployment descriptor instance + file must not contain multiple elements of session-config, + jsp-config, and login-config. When there are multiple elements of + welcome-file-list or locale-encoding-mapping-list, the container + must concatinate the element contents. The multiple occurance + of the element distributable is redundant and the container + treats that case exactly in the same way when there is only + one distributable. </xsd:documentation> </xsd:annotation> @@ -1119,14 +1131,13 @@ <xsd:complexType name="web-appType"> - <xsd:sequence> + <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:group ref="j2ee:descriptionGroup"/> <xsd:element name="distributable" - type="j2ee:emptyType" - minOccurs="0"/> + type="j2ee:emptyType"/> <xsd:element name="context-param" - type="j2ee:param-valueType" - minOccurs="0" maxOccurs="unbounded"> + type="j2ee:param-valueType"> + <xsd:annotation> <xsd:documentation> @@ -1139,62 +1150,37 @@ </xsd:element> <xsd:element name="filter" - type="j2ee:filterType" - minOccurs="0" maxOccurs="unbounded"/> + type="j2ee:filterType"/> <xsd:element name="filter-mapping" - type="j2ee:filter-mappingType" - minOccurs="0" - maxOccurs="unbounded"/> + type="j2ee:filter-mappingType"/> <xsd:element name="listener" - type="j2ee:listenerType" - minOccurs="0" - maxOccurs="unbounded"/> + type="j2ee:listenerType"/> <xsd:element name="servlet" - type="j2ee:servletType" - minOccurs="0" - maxOccurs="unbounded"/> + type="j2ee:servletType"/> <xsd:element name="servlet-mapping" - type="j2ee:servlet-mappingType" - minOccurs="0" - maxOccurs="unbounded"/> + type="j2ee:servlet-mappingType"/> <xsd:element name="session-config" - type="j2ee:session-configType" - minOccurs="0"/> + type="j2ee:session-configType"/> <xsd:element name="mime-mapping" - type="j2ee:mime-mappingType" - minOccurs="0" - maxOccurs="unbounded"/> + type="j2ee:mime-mappingType"/> <xsd:element name="welcome-file-list" - type="j2ee:welcome-file-listType" - minOccurs="0"/> + type="j2ee:welcome-file-listType"/> <xsd:element name="error-page" - type="j2ee:error-pageType" - minOccurs="0" - maxOccurs="unbounded"/> + type="j2ee:error-pageType"/> <xsd:element name="jsp-config" - type="j2ee:jsp-configType" - minOccurs="0"/> + type="j2ee:jsp-configType"/> <xsd:element name="security-constraint" - type="j2ee:security-constraintType" - minOccurs="0" - maxOccurs="unbounded"/> + type="j2ee:security-constraintType"/> <xsd:element name="login-config" - type="j2ee:login-configType" - minOccurs="0"/> + type="j2ee:login-configType"/> <xsd:element name="security-role" - type="j2ee:security-roleType" - minOccurs="0" - maxOccurs="unbounded"/> + type="j2ee:security-roleType"/> <xsd:group ref="j2ee:jndiEnvironmentRefsGroup"/> <xsd:element name="message-destination" - type="j2ee:message-destinationType" - minOccurs="0" - maxOccurs="unbounded"/> + type="j2ee:message-destinationType"/> <xsd:element name="locale-encoding-mapping-list" - type="j2ee:locale-encoding-mapping-listType" - minOccurs="0" - maxOccurs="1"/> - </xsd:sequence> + type="j2ee:locale-encoding-mapping-listType"/> + </xsd:choice> <xsd:attribute name="version" type="j2ee:web-app-versionType" 1.2 +4 -4 jakarta-servletapi-5/jsr154/src/share/javax/servlet/ServletContext.java Index: ServletContext.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr154/src/share/javax/servlet/ServletContext.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ServletContext.java 13 Aug 2002 16:21:43 -0000 1.1 +++ ServletContext.java 5 Mar 2003 19:42:47 -0000 1.2 @@ -133,7 +133,7 @@ /** * Returns the major version of the Java Servlet API that this * servlet container supports. All implementations that comply - * with Version 2.3 must have this method + * with Version 2.4 must have this method * return the integer 2. * * @return 2 @@ -147,10 +147,10 @@ /** * Returns the minor version of the Servlet API that this * servlet container supports. All implementations that comply - * with Version 2.3 must have this method - * return the integer 3. + * with Version 2.4 must have this method + * return the integer 4. * - * @return 3 + * @return 4 * */ 1.2 +1 -1 jakarta-servletapi-5/jsr154/src/share/javax/servlet/ServletContextAttributeListener.java Index: ServletContextAttributeListener.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr154/src/share/javax/servlet/ServletContextAttributeListener.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ServletContextAttributeListener.java 13 Aug 2002 16:21:43 -0000 1.1 +++ ServletContextAttributeListener.java 5 Mar 2003 19:42:48 -0000 1.2 @@ -13,7 +13,7 @@ public interface ServletContextAttributeListener extends EventListener { /** Notification that a new attribute was added to the servlet context. Called after the attribute is added.*/ public void attributeAdded(ServletContextAttributeEvent scab); - /** Notification that an existing attribute has been remved from the servlet context. Called after the attribute is removed.*/ + /** Notification that an existing attribute has been removed from the servlet context. Called after the attribute is removed.*/ public void attributeRemoved(ServletContextAttributeEvent scab); /** Notification that an attribute on the servlet context has been replaced. Called after the attribute is replaced. */ public void attributeReplaced(ServletContextAttributeEvent scab); 1.2 +9 -2 jakarta-servletapi-5/jsr154/src/share/javax/servlet/ServletContextListener.java Index: ServletContextListener.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr154/src/share/javax/servlet/ServletContextListener.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ServletContextListener.java 13 Aug 2002 16:21:43 -0000 1.1 +++ ServletContextListener.java 5 Mar 2003 19:42:48 -0000 1.2 @@ -71,11 +71,18 @@ */ public interface ServletContextListener extends EventListener { - /** Notification that the web application is ready to process requests.*/ + /** Notification that the web application initialization + ** process is starting. + ** All ServletContextListeners are notified of context + ** initialisation before any filter or servlet in the web + ** application is initialized. + */ public void contextInitialized ( ServletContextEvent sce ); - /** Notification that the servlet context is about to be shut down. */ + /** Notification that the servlet context is about to be shut down. All servlets + have been dstroy()ed before any ServletContextListeners are notified of context + destruction. */ public void contextDestroyed ( ServletContextEvent sce ); } 1.3 +26 -13 jakarta-servletapi-5/jsr154/src/share/javax/servlet/ServletRequest.java Index: ServletRequest.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr154/src/share/javax/servlet/ServletRequest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ServletRequest.java 5 Mar 2003 02:20:46 -0000 1.2 +++ ServletRequest.java 5 Mar 2003 19:42:48 -0000 1.3 @@ -350,12 +350,12 @@ /** - * Returns the host name of the server that received the request. - * For HTTP servlets, same as the value of the CGI variable - * <code>SERVER_NAME</code>. + * Returns the host name of the server to which the request was sent. + * It is the value of the part before ":" in the <code>Host</code> + * header, if any, or the resolved server name, or the server IP address. * * @return a <code>String</code> containing the name - * of the server to which the request was sent + * of the server */ public String getServerName(); @@ -364,9 +364,10 @@ /** - * Returns the port number on which this request was received. - * For HTTP servlets, same as the value of the CGI variable - * <code>SERVER_PORT</code>. + * Returns the port number to which the request was sent. + * It is the value of the part after ":" in the <code>Host</code> + * header, if any, or the server port where the client connection + * was accepted on. * * @return an integer specifying the port number * @@ -407,7 +408,8 @@ /** * Returns the Internet Protocol (IP) address of the client - * that sent the request. For HTTP servlets, same as the value of the + * or last proxy that sent the request. + * For HTTP servlets, same as the value of the * CGI variable <code>REMOTE_ADDR</code>. * * @return a <code>String</code> containing the @@ -421,14 +423,15 @@ /** - * Returns the fully qualified name of the client that sent the - * request. If the engine cannot or chooses not to resolve the hostname + * Returns the fully qualified name of the client + * or the last proxy that sent the request. + * If the engine cannot or chooses not to resolve the hostname * (to improve performance), this method returns the dotted-string form of * the IP address. For HTTP servlets, same as the value of the CGI variable * <code>REMOTE_HOST</code>. * * @return a <code>String</code> containing the fully - * qualified name of the client + * qualified name of the client * */ @@ -447,7 +450,7 @@ * package names. Names beginning with <code>java.*</code>, * <code>javax.*</code>, and <code>com.sun.*</code>, are * reserved for use by Sun Microsystems. - *<br> If the value passed in is null, the effect is the same as + *<br> If the object passed in is null, the effect is the same as * calling [EMAIL PROTECTED] #removeAttribute}. * * @@ -559,7 +562,8 @@ * relative path. * * @param path a <code>String</code> specifying the pathname - * to the resource + * to the resource. If it is relative, it must be + * relative against the current servlet. * * @return a <code>RequestDispatcher</code> object * that acts as a wrapper for the resource @@ -595,12 +599,19 @@ /** * Returns the host name of the Internet Protocol (IP) interface on * which the request was received. + * + * @return a <code>String</code> containing the host + * name of the IP on which the request was received. */ public String getLocalName(); /** * Returns the Internet Protocol (IP) address of the interface on * which the request was received. + * + * @return a <code>String</code> containing the + * IP address on which the request was received. + * */ public String getLocalAddr(); @@ -608,6 +619,8 @@ /** * Returns the Internet Protocol (IP) port number of the interface * on which the request was received. + * + * @return an integer specifying the port number */ public int getLocalPort(); 1.3 +8 -8 jakarta-servletapi-5/jsr154/src/share/javax/servlet/ServletRequestWrapper.java Index: ServletRequestWrapper.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr154/src/share/javax/servlet/ServletRequestWrapper.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- ServletRequestWrapper.java 5 Mar 2003 02:20:46 -0000 1.2 +++ ServletRequestWrapper.java 5 Mar 2003 19:42:48 -0000 1.3 @@ -401,8 +401,8 @@ } /** - * Returns the Internet Protocol (IP) source port of the client - * or last proxy that sent the request. + * The default behavior of this method is to return + * getRemotePort() on the wrapped request object. */ public int getRemotePort(){ return this.request.getRemotePort(); @@ -410,16 +410,16 @@ /** - * Returns the host name of the Internet Protocol (IP) interface on - * which the request was received. + * The default behavior of this method is to return + * getLocalName() on the wrapped request object. */ public String getLocalName(){ return this.request.getLocalName(); } /** - * Returns the Internet Protocol (IP) address of the interface on - * which the request was received. + * The default behavior of this method is to return + * getLocalAddr() on the wrapped request object. */ public String getLocalAddr(){ return this.request.getLocalAddr(); @@ -427,8 +427,8 @@ /** - * Returns the Internet Protocol (IP) port number of the interface - * on which the request was received. + * The default behavior of this method is to return + * getLocalPort() on the wrapped request object. */ public int getLocalPort(){ return this.request.getLocalPort(); 1.2 +139 -78 jakarta-servletapi-5/jsr154/src/share/javax/servlet/ServletResponse.java Index: ServletResponse.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr154/src/share/javax/servlet/ServletResponse.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ServletResponse.java 13 Aug 2002 16:21:42 -0000 1.1 +++ ServletResponse.java 5 Mar 2003 19:42:48 -0000 1.2 @@ -79,16 +79,19 @@ * <code>ServletOutputStream</code> and manage the character sections * manually. * - * <p>The charset for the MIME body response can be specified with - * [EMAIL PROTECTED] #setContentType}. For example, "text/html; charset=Shift_JIS". - * The charset can alternately be set using [EMAIL PROTECTED] #setLocale}. - * If no charset is specified, ISO-8859-1 will be used. - * The <code>setContentType</code> or <code>setLocale</code> method - * must be called before <code>getWriter</code> for the charset to - * affect the construction of the writer. + * <p>The charset for the MIME body response can be specified + * explicitly using the [EMAIL PROTECTED] #setCharacterEncoding} and + * [EMAIL PROTECTED] #setContentType} methods, or implicitly + * using the [EMAIL PROTECTED] #setLocale} method. + * Explicit specifications take precedence over + * implicit specifications. If no charset is specified, ISO-8859-1 will be + * used. The <code>setCharacterEncoding</code>, + * <code>setContentType</code>, or <code>setLocale</code> method must + * be called before <code>getWriter</code> and before committing + * the response for the character encoding to be used. * * <p>See the Internet RFCs such as - * <a href="http://info.internet.isi.edu/in-notes/rfc/files/rfc2045.txt"> + * <a href="http://www.ietf.org/rfc/rfc2045.txt"> * RFC 2045</a> for more information on MIME. Protocols such as SMTP * and HTTP define profiles of MIME, and those standards * are still evolving. @@ -105,33 +108,51 @@ /** - * Returns the name of the charset used for - * the MIME body sent in this response. - * - * <p>If no charset has been assigned, it is implicitly - * set to <code>ISO-8859-1</code> (<code>Latin-1</code>). - * - * <p>See RFC 2047 (http://ds.internic.net/rfc/rfc2045.txt) + * Returns the name of the character encoding (MIME charset) + * used for the body sent in this response. + * The character encoding may have been specified explicitly + * using the [EMAIL PROTECTED] #setCharacterEncoding} or + * [EMAIL PROTECTED] #setContentType} methods, or implicitly using the + * [EMAIL PROTECTED] #setLocale} method. Explicit specifications take + * precedence over implicit specifications. Calls made + * to these methods after <code>getWriter</code> has been + * called or after the response has been committed have no + * effect on the character encoding. If no character encoding + * has been specified, <code>ISO-8859-1</code> is returned. + * <p>See RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt) * for more information about character encoding and MIME. * * @return a <code>String</code> specifying the - * name of the charset, for - * example, <code>ISO-8859-1</code> + * name of the character encoding, for + * example, <code>UTF-8</code> * */ public String getCharacterEncoding(); + + /** - * Overrides the name of the character encoding used in the body - * of the request. This method must be called prior to reading - * request parameters or reading input using getReader(). - * - * @param charset String containing the name of the chararacter encoding. + * Returns the content type used for the MIME body + * sent in this response. The content type proper must + * have been specified using [EMAIL PROTECTED] #setContentType} + * before the response is committed. If no content type + * has been specified, this method returns null. + * If a content type has been specified and a + * character encoding has been explicitly or implicitly + * specified as described in [EMAIL PROTECTED] #getCharacterEncoding}, + * the charset parameter is included in the string returned. + * If no character encoding has been specified, the + * charset parameter is omitted. * + * @return a <code>String</code> specifying the + * content type, for example, + * <code>text/html; charset=UTF-8</code>, + * or null */ - public void setCharacterEncoding(String charset); + public String getContentType(); + /** @@ -160,37 +181,38 @@ /** - * Returns a <code>PrintWriter</code> object that - * can send character text to the client. - * The character encoding used is the one specified - * in the <code>charset=</code> property of the - * [EMAIL PROTECTED] #setContentType} method, which must be called - * <i>before</i> calling this method for the charset to take effect. - * - * <p>If necessary, the MIME type of the response is - * modified to reflect the character encoding used. - * - * <p> Calling flush() on the PrintWriter commits the response. - * + * Returns a <code>PrintWriter</code> object that + * can send character text to the client. + * The <code>PrintWriter</code> uses the character + * encoding returned by [EMAIL PROTECTED] #getCharacterEncoding}. + * If the response's character encoding has not been + * specified as described in <code>getCharacterEncoding</code> + * (i.e., the method just returns the default value + * <code>ISO-8859-1</code>), <code>getWriter</code> + * updates it to <code>ISO-8859-1</code>. + * <p>Calling flush() on the <code>PrintWriter</code> + * commits the response. * <p>Either this method or [EMAIL PROTECTED] #getOutputStream} may be called * to write the body, not both. * * - * @return a <code>PrintWriter</code> object that - * can return character data to the client - * - * @exception UnsupportedEncodingException if the charset specified in - * <code>setContentType</code> cannot be - * used + * @return a <code>PrintWriter</code> object that + * can return character data to the client * - * @exception IllegalStateException if the <code>getOutputStream</code> - * method has already been called for this - * response object + * @exception UnsupportedEncodingException + * if the character encoding returned + * by <code>getCharacterEncoding</code> cannot be used + * + * @exception IllegalStateException + * if the <code>getOutputStream</code> + * method has already been called for this + * response object * - * @exception IOException if an input or output exception occurred + * @exception IOException + * if an input or output exception occurred * - * @see #getOutputStream - * @see #setContentType + * @see #getOutputStream + * @see #setCharacterEncoding * */ @@ -199,6 +221,35 @@ + /** + * Sets the character encoding (MIME charset) of the response + * being sent to the client, for example, to UTF-8. + * If the character encoding has already been set by + * [EMAIL PROTECTED] #setContentType} or [EMAIL PROTECTED] #setLocale}, + * this method overrides it. + * Calling [EMAIL PROTECTED] #setContentType} with the <code>String</code> + * of <code>text/html</code> and calling + * this method with the <code>String</code> of <code>UTF-8</code> + * is equivalent with calling + * <code>setContentType</code> with the <code>String</code> of + * <code>text/html; charset=UTF-8</code>. + * <p>This method has no effect if it is called after + * <code>getWriter</code> has been + * called or after the response has been committed. + * + * @param charset a String specifying only the character set + * defined by IANA Character Sets + * (http://www.iana.org/assignments/character-sets) + * + * @see #setContentType + * #setLocale + * + */ + + public void setCharacterEncoding(String charset); + + + /** * Sets the length of the content body in the response @@ -217,16 +268,22 @@ /** * Sets the content type of the response being sent to - * the client. The content type may include the type of character - * encoding used, for example, <code>text/html; charset=ISO-8859-4</code>. - * - * <p>If obtaining a <code>PrintWriter</code>, this method should be - * called first. - * + * the client, if the response has not been committed yet. + * The given content type may include a character encoding + * specification, for example, <code>text/html;charset=UTF-8</code>. + * The response's character encoding is only set from the given + * content type if this method is called before <code>getWriter</code> + * is called. + * <p>This method has no effect if called after the response + * has been committed. It does not set the response's character + * encoding if it is called after <code>getWriter</code> + * has been called or after the response has been committed. * * @param type a <code>String</code> specifying the MIME * type of the content * + * @see #setLocale + * @see #setCharacterEncoding * @see #getOutputStream * @see #getWriter * @@ -234,24 +291,6 @@ public void setContentType(String type); - /** - * Returns the MIME type of the body of the request, or null if - * the type is not known. For HTTP servlets, same as the value of - * the CGI variable CONTENT_TYPE. - * - * @return a String containing the name of the MIME type of the - * request, or null if the type is not known - * - * <p> The content type may include the type of character - * encoding used, for example, <code>text/html; charset=ISO-8859-4</code>. - * - * @see #getOutputStream - * @see #getWriter - * - */ - - public String getContentType(); - /** * Sets the preferred buffer size for the body of the response. @@ -266,7 +305,8 @@ * quickly. * * <p>This method must be called before any response body content is - * written; if content has been written, this method throws an + * written; if content has been written or the response object has + * been committed, this method throws an * <code>IllegalStateException</code>. * * @param size the preferred buffer size @@ -374,14 +414,32 @@ /** - * Sets the locale of the response, setting the headers (including the - * Content-Type's charset) as appropriate. This method should be called - * before a call to [EMAIL PROTECTED] #getWriter}. By default, the response locale - * is the default locale for the server. + * Sets the locale of the response, setting the + * <code>Content-Language</code> header, + * if the response has not been committed yet. + * It also sets the response's character encoding appropriately + * for the locale, if the character encoding has not been + * explicitly set using [EMAIL PROTECTED] #setContentType} or + * [EMAIL PROTECTED] #setCharacterEncoding}, <code>getWriter</code> hasn't + * been called yet, and the response hasn't been committed yet. + * If the deployment descriptor contains a + * <code>locale-encoding-mapping-list</code> element, + * and that element provides a mapping for the given locale, + * that mapping is used. Otherwise, the mapping from locale to + * character encoding is container dependent. + * <p>This method has no effect if called after the response has been + * committed. It does not set the response's character encoding if + * it is called after <code>setContentType</code> has been called + * with a charset specification, after + * <code>setCharacterEncoding</code> has been called, after + * <code>getWriter</code> has been called, or after the response + * has been committed. * * @param loc the locale of the response * * @see #getLocale + * @see #setContentType + * @see #setCharacterEncoding * */ @@ -390,8 +448,11 @@ /** - * Returns the locale assigned to the response. - * + * Returns the locale specified for this response + * using the [EMAIL PROTECTED] #setLocale} method. Calls made to + * <code>setLocale</code> after the response is committed + * have no effect. If no locale has been specified, + * the container's default locale is returned. * * @see #setLocale * 1.2 +11 -4 jakarta-servletapi-5/jsr154/src/share/javax/servlet/SingleThreadModel.java Index: SingleThreadModel.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr154/src/share/javax/servlet/SingleThreadModel.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- SingleThreadModel.java 13 Aug 2002 16:21:43 -0000 1.1 +++ SingleThreadModel.java 5 Mar 2003 19:42:48 -0000 1.2 @@ -71,15 +71,22 @@ * instance of the servlet, or by maintaining a pool of servlet * instances and dispatching each new request to a free servlet. * - * <p>This interface does not prevent - * synchronization problems that result from servlets accessing shared - * resources such as static class variables or classes outside - * the scope of the servlet. + * <p>Note that SingleThreadModel does not solve all thread safety + * issues. For example, session attributes and static variables can + * still be accessed by multiple requests on multiple threads + * at the same time, even when SingleThreadModel servlets are used. + * It is recommended that a developer take other means to resolve + * those issues instead of implementing this interface, such as + * avoiding the usage of an instance variable or synchronizing + * the block of the code accessing those resources. + * This interface is deprecated in Servlet API version 2.4. * * * @author Various * @version $Version$ * + * @deprecated As of Java Servlet API 2.4, with no direct + * replacement. */ public interface SingleThreadModel { 1.2 +2 -2 jakarta-servletapi-5/jsr154/src/share/javax/servlet/http/HttpServlet.java Index: HttpServlet.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr154/src/share/javax/servlet/http/HttpServlet.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- HttpServlet.java 13 Aug 2002 16:21:46 -0000 1.1 +++ HttpServlet.java 5 Mar 2003 19:42:48 -0000 1.2 @@ -410,8 +410,8 @@ * Content-MD5, and Content-Range). If your method cannot * handle a content header, it must issue an error message * (HTTP 501 - Not Implemented) and discard the request. - * For more information on HTTP 1.1, see RFC 2068 - * <a href="http://info.internet.isi.edu:80/in-notes/rfc/files/rfc2068.txt"></a>. + * For more information on HTTP 1.1, see RFC 2616 + * <a href="http://www.ietf.org/rfc/rfc2616.txt"></a>. * * <p>This method does not need to be either safe or idempotent. * Operations that <code>doPut</code> performs can have side 1.2 +29 -19 jakarta-servletapi-5/jsr154/src/share/javax/servlet/http/HttpServletRequest.java Index: HttpServletRequest.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr154/src/share/javax/servlet/http/HttpServletRequest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- HttpServletRequest.java 13 Aug 2002 16:21:44 -0000 1.1 +++ HttpServletRequest.java 5 Mar 2003 19:42:48 -0000 1.2 @@ -111,8 +111,9 @@ * * @return one of the static members BASIC_AUTH, * FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH - * (suitable for == comparison) - * indicating the authentication scheme, or + * (suitable for == comparison) or + * the container-specific string indicating + * the authentication scheme, or * <code>null</code> if the request was * not authenticated. * @@ -186,6 +187,8 @@ * 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. * @@ -316,8 +319,10 @@ * 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. - * This method returns <code>null</code> if there + * 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. @@ -345,9 +350,11 @@ * 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>. + * 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 thins string. + * The web container does not decode this string. * * * @return a <code>String</code> specifying the @@ -466,11 +473,9 @@ /** * * Returns the session ID specified by the client. This may - * not be the same as the ID of the actual session in use. - * For example, if the request specified an old (expired) - * session ID and the server has started a new session, this - * method gets a new session with a new ID. If the request - * did not specify a session ID, this method returns + * 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>. * * @@ -542,17 +547,22 @@ /** * * Returns the part of this request's URL that calls - * the servlet. This 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. - * + * 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. * * @return a <code>String</code> containing * the name or path of the servlet being * called, as specified in the request URL, - * decoded. - * + * decoded, or an empty string if the servlet + * used to process the request is matched + * using the "/*" pattern. * */ @@ -564,7 +574,7 @@ /** * * Returns the current <code>HttpSession</code> - * associated with this request or, if if there is no + * associated with this request or, if there is no * current session and <code>create</code> is true, returns * a new session. * 1.2 +12 -5 jakarta-servletapi-5/jsr154/src/share/javax/servlet/http/HttpServletResponse.java Index: HttpServletResponse.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr154/src/share/javax/servlet/http/HttpServletResponse.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- HttpServletResponse.java 13 Aug 2002 16:21:46 -0000 1.1 +++ HttpServletResponse.java 5 Mar 2003 19:42:48 -0000 1.2 @@ -176,8 +176,9 @@ /** * Sends an error response to the client using the specified - * status clearing the buffer. The server defaults to creating the - * response to look like an HTML-formatted server error page containing the specified message, setting the content type + * 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 @@ -229,7 +230,8 @@ * * @param location the redirect location URL * @exception IOException If an input or output exception occurs - * @exception IllegalStateException If the response was committed + * @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; @@ -276,7 +278,9 @@ * value. * * @param name the name of the header - * @param value the header value + * @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 @@ -289,7 +293,10 @@ * This method allows response headers to have multiple values. * * @param name the name of the header - * @param value the additional header value + * @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 */ 1.2 +1 -1 jakarta-servletapi-5/jsr154/src/share/javax/servlet/http/HttpSessionListener.java Index: HttpSessionListener.java =================================================================== RCS file: /home/cvs/jakarta-servletapi-5/jsr154/src/share/javax/servlet/http/HttpSessionListener.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- HttpSessionListener.java 13 Aug 2002 16:21:44 -0000 1.1 +++ HttpSessionListener.java 5 Mar 2003 19:42:48 -0000 1.2 @@ -80,7 +80,7 @@ public void sessionCreated ( HttpSessionEvent se ); /** - * Notification that a session was invalidated. + * Notification that a session is about to be invalidated. * @param se the notification event */ public void sessionDestroyed ( HttpSessionEvent se );
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]