[jboss-cvs] JBossAS SVN: r68007 - in projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet: http and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Dec 6 17:01:54 EST 2007
Author: smcgowan at redhat.com
Date: 2007-12-06 17:01:53 -0500 (Thu, 06 Dec 2007)
New Revision: 68007
Modified:
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/Filter.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/FilterChain.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/FilterConfig.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/GenericServlet.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/LocalStrings.properties
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/LocalStrings_fr.properties
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/LocalStrings_ja.properties
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/RequestDispatcher.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/Servlet.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletConfig.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContext.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextAttributeEvent.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextAttributeListener.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextEvent.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextListener.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletException.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletInputStream.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletOutputStream.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequest.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestAttributeEvent.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestAttributeListener.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestEvent.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestListener.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestWrapper.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletResponse.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletResponseWrapper.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/SingleThreadModel.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/UnavailableException.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/Cookie.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServlet.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletRequest.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletRequestWrapper.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletResponse.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletResponseWrapper.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSession.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionActivationListener.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionAttributeListener.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionBindingEvent.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionBindingListener.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionContext.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionEvent.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionListener.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpUtils.java
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings.properties
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings_es.properties
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings_fr.properties
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings_ja.properties
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/package.html
projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/package.html
Log:
update servlet apis
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/Filter.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/Filter.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/Filter.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,113 +1,92 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.io.IOException;
-/**
- * A filter is an object that performs filtering tasks on either the request to
- * a resource (a servlet or static content), or on the response from a resource,
- * or both. <br>
- * <br>
- * Filters perform filtering in the <code>doFilter</code> method. Every Filter
- * has access to a FilterConfig object from which it can obtain its
- * initialization parameters, a reference to the ServletContext which it can
- * use, for example, to load resources needed for filtering tasks.
- * <p>
- * Filters are configured in the deployment descriptor of a web application
- * <p>
- * Examples that have been identified for this design are<br>
- * <ol>
- * <li>Authentication Filters</li>
- * <li>Logging and Auditing Filters</li>
- * <li>Image conversion Filters</li>
- * <li>Data compression Filters</li>
- * <li>Encryption Filters</li>
- * <li>Tokenizing Filters</li>
- * <li>Filters that trigger resource access events</li>
- * <li>XSL/T filters</li>
- * <li>Mime-type chain Filter</li>
- * </ol>
- *
- * @since Servlet 2.3
- */
+ /**
+ * A filter is an object that performs filtering tasks on either the request to a resource (a servlet or static content), or on the response from a resource, or both.
+ * <br><br>
+ * Filters perform filtering in the <code>doFilter</code> method. Every Filter has access to
+ ** a FilterConfig object from which it can obtain its initialization parameters, a
+ ** reference to the ServletContext which it can use, for example, to load resources
+ ** needed for filtering tasks.
+ ** <p>
+ ** Filters are configured in the deployment descriptor of a web application
+ ** <p>
+ ** Examples that have been identified for this design are<br>
+ ** 1) Authentication Filters <br>
+ ** 2) Logging and Auditing Filters <br>
+ ** 3) Image conversion Filters <br>
+ ** 4) Data compression Filters <br>
+ ** 5) Encryption Filters <br>
+ ** 6) Tokenizing Filters <br>
+ ** 7) Filters that trigger resource access events <br>
+ ** 8) XSL/T filters <br>
+ ** 9) Mime-type chain Filter <br>
+ * @since Servlet 2.3
+ */
-public interface Filter
-{
+public interface Filter {
- /**
- * Called by the web container to indicate to a filter that it is being
- * placed into service. The servlet container calls the init method exactly
- * once after instantiating the filter. The init method must complete
- * successfully before the filter is asked to do any filtering work. <br>
- * <br>
- *
- * The web container cannot place the filter into service if the init method
- * either<br>
- * <ol>
- * <li>Throws a ServletException</li>
- * <li>Does not return within a time period defined by the web container</li>
- * </ol>
- */
- public void init(FilterConfig filterConfig) throws ServletException;
+ /**
+ * Called by the web container to indicate to a filter that it is being placed into
+ * service. The servlet container calls the init method exactly once after instantiating the
+ * filter. The init method must complete successfully before the filter is asked to do any
+ * filtering work. <br><br>
- /**
- * The <code>doFilter</code> method of the Filter is called by the
- * container each time a request/response pair is passed through the chain
- * due to a client request for a resource at the end of the chain. The
- * FilterChain passed in to this method allows the Filter to pass on the
- * request and response to the next entity in the chain.
- * <p>
- * A typical implementation of this method would follow the following
- * pattern:- <br>
- * <ol>
- * <li>Examine the request</li>
- * <li>Optionally wrap the request object with a custom implementation to
- * filter content or headers for input filtering</li>
- * <li>Optionally wrap the response object with a custom implementation to
- * filter content or headers for output filtering</li>
- * <li>a) <strong>Either</strong> invoke the next entity in the chain using
- * the FilterChain object (<code>chain.doFilter()</code>), <br>
- * b) <strong>or</strong> not pass on the request/response pair to the
- * next entity in the filter chain to block the request processing</li>
- * <li> Directly set headers on the response after invocation of the next
- * entity in the filter chain.</li>
- * </ol>
- */
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException;
+ * The web container cannot place the filter into service if the init method either<br>
+ * 1.Throws a ServletException <br>
+ * 2.Does not return within a time period defined by the web container
+ */
+ public void init(FilterConfig filterConfig) throws ServletException;
+
+
+ /**
+ * The <code>doFilter</code> method of the Filter is called by the container
+ * each time a request/response pair is passed through the chain due
+ * to a client request for a resource at the end of the chain. The FilterChain passed in to this
+ * method allows the Filter to pass on the request and response to the next entity in the
+ * chain.<p>
+ * A typical implementation of this method would follow the following pattern:- <br>
+ * 1. Examine the request<br>
+ * 2. Optionally wrap the request object with a custom implementation to
+ * filter content or headers for input filtering <br>
+ * 3. Optionally wrap the response object with a custom implementation to
+ * filter content or headers for output filtering <br>
+ * 4. a) <strong>Either</strong> invoke the next entity in the chain using the FilterChain object (<code>chain.doFilter()</code>), <br>
+ ** 4. b) <strong>or</strong> not pass on the request/response pair to the next entity in the filter chain to block the request processing<br>
+ ** 5. Directly set headers on the response after invocation of the next entity in the filter chain.
+ **/
+ public void doFilter ( ServletRequest request, ServletResponse response, FilterChain chain ) throws IOException, ServletException;
- /**
- * Called by the web container to indicate to a filter that it is being taken
- * out of service. This method is only called once all threads within the
- * filter's doFilter method have exited or after a timeout period has passed.
- * After the web container calls this method, it will not call the doFilter
- * method again on this instance of the filter. <br>
- * <br>
- *
- * This method gives the filter an opportunity to clean up any resources that
- * are being held (for example, memory, file handles, threads) and make sure
- * that any persistent state is synchronized with the filter's current state
- * in memory.
- */
- public void destroy();
+ /**
+ * Called by the web container to indicate to a filter that it is being taken out of service. This
+ * method is only called once all threads within the filter's doFilter method have exited or after
+ * a timeout period has passed. After the web container calls this method, it will not call the
+ * doFilter method again on this instance of the filter. <br><br>
+ *
+ * This method gives the filter an opportunity to clean up any resources that are being held (for
+ * example, memory, file handles, threads) and make sure that any persistent state is synchronized
+ * with the filter's current state in memory.
+ */
+ public void destroy();
+
+
}
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/FilterChain.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/FilterChain.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/FilterChain.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,49 +1,46 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.io.IOException;
-/**
- * A FilterChain is an object provided by the servlet container to the developer
- * giving a view into the invocation chain of a filtered request for a resource. Filters
- * use the FilterChain to invoke the next filter in the chain, or if the calling filter
- * is the last filter in the chain, to invoke the resource at the end of the chain.
- *
- * @see Filter
- * @since Servlet 2.3
- **/
-public interface FilterChain
-{
-
- /**
- * Causes the next filter in the chain to be invoked, or if the calling filter is the last filter
- * in the chain, causes the resource at the end of the chain to be invoked.
+ /**
+ * A FilterChain is an object provided by the servlet container to the developer
+ * giving a view into the invocation chain of a filtered request for a resource. Filters
+ * use the FilterChain to invoke the next filter in the chain, or if the calling filter
+ * is the last filter in the chain, to invoke the resource at the end of the chain.
*
- * @param request the request to pass along the chain.
- * @param response the response to pass along the chain.
- *
- * @since 2.3
- */
- public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException;
+ * @see Filter
+ * @since Servlet 2.3
+ **/
+public interface FilterChain {
+
+ /**
+ * Causes the next filter in the chain to be invoked, or if the calling filter is the last filter
+ * in the chain, causes the resource at the end of the chain to be invoked.
+ *
+ * @param request the request to pass along the chain.
+ * @param response the response to pass along the chain.
+ *
+ * @since 2.3
+ */
+
+ public void doFilter ( ServletRequest request, ServletResponse response ) throws IOException, ServletException;
+
}
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/FilterConfig.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/FilterConfig.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/FilterConfig.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,79 +1,92 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
package javax.servlet;
+
import java.util.Enumeration;
-/**
- *
- * A filter configuration object used by a servlet container to pass information
- * to a filter during initialization.
- *
- * @see Filter
- * @since Servlet 2.3
- *
- */
-public interface FilterConfig
-{
+ /**
+ *
+ * A filter configuration object used by a servlet container
+ * to pass information to a filter during initialization.
+ * @see Filter
+ * @since Servlet 2.3
+ *
+ */
- /**
- * Returns the filter-name of this filter as defined in the deployment
- * descriptor.
- */
- public String getFilterName();
- /**
- * Returns a reference to the {@link ServletContext} in which the caller is
- * executing.
- *
- * @return a {@link ServletContext} object, used by the caller to interact
- * with its servlet container
- *
- * @see ServletContext
- */
- public ServletContext getServletContext();
+public interface FilterConfig {
- /**
- * Returns a <code>String</code> containing the value of the named
- * initialization parameter, or <code>null</code> if the parameter does not
- * exist.
- *
- * @param name
- * a <code>String</code> specifying the name of the
- * initialization parameter
- *
- * @return a <code>String</code> containing the value of the initialization
- * parameter
- */
- public String getInitParameter(String name);
+ /**
+ * Returns the filter-name of this filter as defined in the deployment descriptor.
+ */
+
+ public String getFilterName();
- /**
- * Returns the names of the filter's initialization parameters as an
- * <code>Enumeration</code> of <code>String</code> objects, or an empty
- * <code>Enumeration</code> if the filter has no initialization parameters.
- *
- * @return an <code>Enumeration</code> of <code>String</code> objects
- * containing the names of the filter's initialization parameters
- */
- public Enumeration getInitParameterNames();
+ /**
+ * Returns a reference to the {@link ServletContext} in which the caller
+ * is executing.
+ *
+ *
+ * @return a {@link ServletContext} object, used
+ * by the caller to interact with its servlet
+ * container
+ *
+ * @see ServletContext
+ *
+ */
+
+ public ServletContext getServletContext();
+
+ /**
+ * Returns a <code>String</code> containing the value of the
+ * named initialization parameter, or <code>null</code> if
+ * the parameter does not exist.
+ *
+ * @param name a <code>String</code> specifying the name
+ * of the initialization parameter
+ *
+ * @return a <code>String</code> containing the value
+ * of the initialization parameter
+ *
+ */
+
+ public String getInitParameter(String name);
+
+
+ /**
+ * Returns the names of the filter's initialization parameters
+ * as an <code>Enumeration</code> of <code>String</code> objects,
+ * or an empty <code>Enumeration</code> if the filter has
+ * no initialization parameters.
+ *
+ * @return an <code>Enumeration</code> of <code>String</code>
+ * objects containing the names of the filter's
+ * initialization parameters
+ *
+ *
+ *
+ */
+
+ public Enumeration getInitParameterNames();
+
+
+
+
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/GenericServlet.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/GenericServlet.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/GenericServlet.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,272 +1,324 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.io.IOException;
import java.util.Enumeration;
-import java.util.ResourceBundle;
/**
- * Defines a generic, protocol-independent servlet. To write an HTTP servlet for
- * use on the Web, extend {@link javax.servlet.http.HttpServlet} instead.
- * <p>
- * <code>GenericServlet</code> implements the <code>Servlet</code> and
- * <code>ServletConfig</code> interfaces. <code>GenericServlet</code> may be
- * directly extended by a servlet, although it's more common to extend a
- * protocol-specific subclass such as <code>HttpServlet</code>.
- * <p>
- * <code>GenericServlet</code> makes writing servlets easier. It provides
- * simple versions of the lifecycle methods <code>init</code> and
- * <code>destroy</code> and of the methods in the <code>ServletConfig</code>
- * interface. <code>GenericServlet</code> also implements the <code>log</code>
- * method, declared in the <code>ServletContext</code> interface.
- * <p>
- * To write a generic servlet, you need only override the abstract
- * <code>service</code> method.
- *
- * @author Various
+ *
+ * Defines a generic, protocol-independent
+ * servlet. To write an HTTP servlet for use on the
+ * Web, extend {@link javax.servlet.http.HttpServlet} instead.
+ *
+ * <p><code>GenericServlet</code> implements the <code>Servlet</code>
+ * and <code>ServletConfig</code> interfaces. <code>GenericServlet</code>
+ * may be directly extended by a servlet, although it's more common to extend
+ * a protocol-specific subclass such as <code>HttpServlet</code>.
+ *
+ * <p><code>GenericServlet</code> makes writing servlets
+ * easier. It provides simple versions of the lifecycle methods
+ * <code>init</code> and <code>destroy</code> and of the methods
+ * in the <code>ServletConfig</code> interface. <code>GenericServlet</code>
+ * also implements the <code>log</code> method, declared in the
+ * <code>ServletContext</code> interface.
+ *
+ * <p>To write a generic servlet, you need only
+ * override the abstract <code>service</code> method.
+ *
+ *
+ * @author Various
+ * @version $Version$
+ *
+ *
+ *
*/
-public abstract class GenericServlet implements Servlet, ServletConfig, java.io.Serializable
+
+public abstract class GenericServlet
+ implements Servlet, ServletConfig, java.io.Serializable
{
- private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
- private static ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE);
+ private transient ServletConfig config;
+
- private transient ServletConfig config;
+ /**
+ *
+ * Does nothing. All of the servlet initialization
+ * is done by one of the <code>init</code> methods.
+ *
+ */
+ public GenericServlet() { }
+
+
+
/**
- * Does nothing. All of the servlet initialization is done by one of the
- * <code>init</code> methods.
- */
- public GenericServlet()
- {
- }
+ * Called by the servlet container to indicate to a servlet that the
+ * servlet is being taken out of service. See {@link Servlet#destroy}.
+ *
+ *
+ */
- /**
- * Called by the servlet container to indicate to a servlet that the servlet
- * is being taken out of service. See {@link Servlet#destroy}.
- */
- public void destroy()
- {
- }
+ public void destroy() {
+ }
+
+
+
+ /**
+ * Returns a <code>String</code> containing the value of the named
+ * initialization parameter, or <code>null</code> if the parameter does
+ * not exist. See {@link ServletConfig#getInitParameter}.
+ *
+ * <p>This method is supplied for convenience. It gets the
+ * value of the named parameter from the servlet's
+ * <code>ServletConfig</code> object.
+ *
+ * @param name a <code>String</code> specifying the name
+ * of the initialization parameter
+ *
+ * @return String a <code>String</code> containing the value
+ * of the initialization parameter
+ *
+ */
+ public String getInitParameter(String name) {
+ return getServletConfig().getInitParameter(name);
+ }
+
+
+
/**
- * Returns a <code>String</code> containing the value of the named
- * initialization parameter, or <code>null</code> if the parameter does not
- * exist. See {@link ServletConfig#getInitParameter}.
- * <p>
- * This method is supplied for convenience. It gets the value of the named
- * parameter from the servlet's <code>ServletConfig</code> object.
- *
- * @param name
- * a <code>String</code> specifying the name of the
- * initialization parameter
- * @return String a <code>String</code> containing the value of the
- * initialization parameter
+ * Returns the names of the servlet's initialization parameters
+ * as an <code>Enumeration</code> of <code>String</code> objects,
+ * or an empty <code>Enumeration</code> if the servlet has no
+ * initialization parameters. See {@link
+ * ServletConfig#getInitParameterNames}.
+ *
+ * <p>This method is supplied for convenience. It gets the
+ * parameter names from the servlet's <code>ServletConfig</code> object.
+ *
+ *
+ * @return Enumeration an enumeration of <code>String</code>
+ * objects containing the names of
+ * the servlet's initialization parameters
+ *
*/
- public String getInitParameter(String name)
- {
- ServletConfig sc = getServletConfig();
- if (sc == null)
- {
- throw new IllegalStateException(lStrings.getString("err.servlet_config_not_initialized"));
- }
- return sc.getInitParameter(name);
- }
+ public Enumeration getInitParameterNames() {
+ return getServletConfig().getInitParameterNames();
+ }
+
+
+
+
- /**
- * Returns the names of the servlet's initialization parameters as an
- * <code>Enumeration</code> of <code>String</code> objects, or an empty
- * <code>Enumeration</code> if the servlet has no initialization
- * parameters. See {@link ServletConfig#getInitParameterNames}.
- * <p>
- * This method is supplied for convenience. It gets the parameter names from
- * the servlet's <code>ServletConfig</code> object.
- *
- * @return Enumeration an enumeration of <code>String</code> objects
- * containing the names of the servlet's initialization parameters
- */
- public Enumeration getInitParameterNames()
- {
- ServletConfig sc = getServletConfig();
- if (sc == null)
- {
- throw new IllegalStateException(lStrings.getString("err.servlet_config_not_initialized"));
- }
+ /**
+ * Returns this servlet's {@link ServletConfig} object.
+ *
+ * @return ServletConfig the <code>ServletConfig</code> object
+ * that initialized this servlet
+ *
+ */
+
+ public ServletConfig getServletConfig() {
+ return config;
+ }
+
+
+
+
+ /**
+ * Returns a reference to the {@link ServletContext} in which this servlet
+ * is running. See {@link ServletConfig#getServletContext}.
+ *
+ * <p>This method is supplied for convenience. It gets the
+ * context from the servlet's <code>ServletConfig</code> object.
+ *
+ *
+ * @return ServletContext the <code>ServletContext</code> object
+ * passed to this servlet by the <code>init</code>
+ * method
+ *
+ */
- return sc.getInitParameterNames();
- }
+ public ServletContext getServletContext() {
+ return getServletConfig().getServletContext();
+ }
- /**
- * Returns this servlet's {@link ServletConfig} object.
- *
- * @return ServletConfig the <code>ServletConfig</code> object that
- * initialized this servlet
- */
- public ServletConfig getServletConfig()
- {
- return config;
- }
- /**
- * Returns a reference to the {@link ServletContext} in which this servlet is
- * running. See {@link ServletConfig#getServletContext}.
- * <p>
- * This method is supplied for convenience. It gets the context from the
- * servlet's <code>ServletConfig</code> object.
- *
- * @return ServletContext the <code>ServletContext</code> object passed to
- * this servlet by the <code>init</code> method
- */
- public ServletContext getServletContext()
- {
- ServletConfig sc = getServletConfig();
- if (sc == null)
- {
- throw new IllegalStateException(lStrings.getString("err.servlet_config_not_initialized"));
- }
- return sc.getServletContext();
- }
+
- /**
- * Returns information about the servlet, such as author, version, and
- * copyright. By default, this method returns an empty string. Override this
- * method to have it return a meaningful value. See {@link
- * Servlet#getServletInfo}.
- *
- * @return String information about this servlet, by default an empty string
- */
- public String getServletInfo()
- {
- return "";
- }
+ /**
+ * Returns information about the servlet, such as
+ * author, version, and copyright.
+ * By default, this method returns an empty string. Override this method
+ * to have it return a meaningful value. See {@link
+ * Servlet#getServletInfo}.
+ *
+ *
+ * @return String information about this servlet, by default an
+ * empty string
+ *
+ */
+
+ public String getServletInfo() {
+ return "";
+ }
- /**
- * Called by the servlet container to indicate to a servlet that the servlet
- * is being placed into service. See {@link Servlet#init}.
- * <p>
- * This implementation stores the {@link ServletConfig} object it receives
- * from the servlet container for later use. When overriding this form of the
- * method, call <code>super.init(config)</code>.
- *
- * @param config
- * the <code>ServletConfig</code> object that contains
- * configutation information for this servlet
- * @exception ServletException
- * if an exception occurs that interrupts the servlet's normal
- * operation
- * @see UnavailableException
- */
- public void init(ServletConfig config) throws ServletException
- {
- this.config = config;
- this.init();
- }
- /**
- * A convenience method which can be overridden so that there's no need to
- * call <code>super.init(config)</code>.
- * <p>
- * Instead of overriding {@link #init(ServletConfig)}, simply override this
- * method and it will be called by
- * <code>GenericServlet.init(ServletConfig config)</code>. The
- * <code>ServletConfig</code> object can still be retrieved via {@link
- * #getServletConfig}.
- *
- * @exception ServletException
- * if an exception occurs that interrupts the servlet's normal
- * operation
- */
- public void init() throws ServletException
- {
- }
- /**
- * Writes the specified message to a servlet log file, prepended by the
- * servlet's name. See {@link ServletContext#log(String)}.
- *
- * @param msg
- * a <code>String</code> specifying the message to be written to
- * the log file
- */
- public void log(String msg)
- {
- getServletContext().log(getServletName() + ": " + msg);
- }
+ /**
+ *
+ * Called by the servlet container to indicate to a servlet that the
+ * servlet is being placed into service. See {@link Servlet#init}.
+ *
+ * <p>This implementation stores the {@link ServletConfig}
+ * object it receives from the servlet container for later use.
+ * When overriding this form of the method, call
+ * <code>super.init(config)</code>.
+ *
+ * @param config the <code>ServletConfig</code> object
+ * that contains configutation
+ * information for this servlet
+ *
+ * @exception ServletException if an exception occurs that
+ * interrupts the servlet's normal
+ * operation
+ *
+ *
+ * @see UnavailableException
+ *
+ */
- /**
- * Writes an explanatory message and a stack trace for a given
- * <code>Throwable</code> exception to the servlet log file, prepended by
- * the servlet's name. See {@link ServletContext#log(String, Throwable)}.
- *
- * @param message
- * a <code>String</code> that describes the error or exception
- * @param t
- * the <code>java.lang.Throwable</code> error or exception
- */
- public void log(String message, Throwable t)
- {
- getServletContext().log(getServletName() + ": " + message, t);
- }
+ public void init(ServletConfig config) throws ServletException {
+ this.config = config;
+ this.init();
+ }
- /**
- * Called by the servlet container to allow the servlet to respond to a
- * request. See {@link Servlet#service}.
- * <p>
- * This method is declared abstract so subclasses, such as
- * <code>HttpServlet</code>, must override it.
- *
- * @param req
- * the <code>ServletRequest</code> object that contains the
- * client's request
- * @param res
- * the <code>ServletResponse</code> object that will contain the
- * servlet's response
- * @exception ServletException
- * if an exception occurs that interferes with the servlet's
- * normal operation occurred
- * @exception IOException
- * if an input or output exception occurs
- */
- public abstract void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;
- /**
- * Returns the name of this servlet instance. See
- * {@link ServletConfig#getServletName}.
- *
- * @return the name of this servlet instance
- */
- public String getServletName()
- {
- ServletConfig sc = getServletConfig();
- if (sc == null)
- {
- throw new IllegalStateException(lStrings.getString("err.servlet_config_not_initialized"));
- }
- return sc.getServletName();
- }
+
+
+ /**
+ *
+ * A convenience method which can be overridden so that there's no need
+ * to call <code>super.init(config)</code>.
+ *
+ * <p>Instead of overriding {@link #init(ServletConfig)}, simply override
+ * this method and it will be called by
+ * <code>GenericServlet.init(ServletConfig config)</code>.
+ * The <code>ServletConfig</code> object can still be retrieved via {@link
+ * #getServletConfig}.
+ *
+ * @exception ServletException if an exception occurs that
+ * interrupts the servlet's
+ * normal operation
+ *
+ */
+
+ public void init() throws ServletException {
+
+ }
+
+
+
+
+ /**
+ *
+ * Writes the specified message to a servlet log file, prepended by the
+ * servlet's name. See {@link ServletContext#log(String)}.
+ *
+ * @param msg a <code>String</code> specifying
+ * the message to be written to the log file
+ *
+ */
+
+ public void log(String msg) {
+ getServletContext().log(getServletName() + ": "+ msg);
+ }
+
+
+
+
+ /**
+ * Writes an explanatory message and a stack trace
+ * for a given <code>Throwable</code> exception
+ * to the servlet log file, prepended by the servlet's name.
+ * See {@link ServletContext#log(String, Throwable)}.
+ *
+ *
+ * @param message a <code>String</code> that describes
+ * the error or exception
+ *
+ * @param t the <code>java.lang.Throwable</code> error
+ * or exception
+ *
+ *
+ */
+
+ public void log(String message, Throwable t) {
+ getServletContext().log(getServletName() + ": " + message, t);
+ }
+
+
+
+ /**
+ * Called by the servlet container to allow the servlet to respond to
+ * a request. See {@link Servlet#service}.
+ *
+ * <p>This method is declared abstract so subclasses, such as
+ * <code>HttpServlet</code>, must override it.
+ *
+ *
+ *
+ * @param req the <code>ServletRequest</code> object
+ * that contains the client's request
+ *
+ * @param res the <code>ServletResponse</code> object
+ * that will contain the servlet's response
+ *
+ * @exception ServletException if an exception occurs that
+ * interferes with the servlet's
+ * normal operation occurred
+ *
+ * @exception IOException if an input or output
+ * exception occurs
+ *
+ */
+
+ public abstract void service(ServletRequest req, ServletResponse res)
+ throws ServletException, IOException;
+
+
+
+ /**
+ * Returns the name of this servlet instance.
+ * See {@link ServletConfig#getServletName}.
+ *
+ * @return the name of this servlet instance
+ *
+ *
+ *
+ */
+
+ public String getServletName() {
+ return config.getServletName();
+ }
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/LocalStrings.properties
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/LocalStrings.properties 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/LocalStrings.properties 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
# Default localized string information
# Localized for Locale en_US
@@ -2,3 +17,2 @@
err.not_iso8859_1=Not an ISO 8859-1 character: {0}
-err.servlet_config_not_initialized=ServletConfig has not been initialized
value.true=true
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/LocalStrings_fr.properties
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/LocalStrings_fr.properties 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/LocalStrings_fr.properties 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
# Default localized string information
# Localized for Locale fr_FR
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/LocalStrings_ja.properties
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/LocalStrings_ja.properties 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/LocalStrings_ja.properties 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
# Default localized string information
# Localized for Locale ja_JP
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/RequestDispatcher.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/RequestDispatcher.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/RequestDispatcher.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,111 +1,139 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+package javax.servlet;
+
+import java.io.IOException;
+
+
+/**
+ * Defines an object that receives requests from the client
+ * and sends them to any resource (such as a servlet,
+ * HTML file, or JSP file) on the server. The servlet
+ * container creates the <code>RequestDispatcher</code> object,
+ * which is used as a wrapper around a server resource located
+ * at a particular path or given by a particular name.
*
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
+ * <p>This interface is intended to wrap servlets,
+ * but a servlet container can create <code>RequestDispatcher</code>
+ * objects to wrap any type of resource.
*
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
+ * @author Various
+ * @version $Version$
*
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ * @see ServletContext#getRequestDispatcher(java.lang.String)
+ * @see ServletContext#getNamedDispatcher(java.lang.String)
+ * @see ServletRequest#getRequestDispatcher(java.lang.String)
+ *
*/
-package javax.servlet;
+
+public interface RequestDispatcher {
-import java.io.IOException;
+
+
+
/**
- * Defines an object that receives requests from the client and sends them to
- * any resource (such as a servlet, HTML file, or JSP file) on the server. The
- * servlet container creates the <code>RequestDispatcher</code> object, which
- * is used as a wrapper around a server resource located at a particular path or
- * given by a particular name.
- * <p>
- * This interface is intended to wrap servlets, but a servlet container can
- * create <code>RequestDispatcher</code> objects to wrap any type of resource.
- *
- * @author Various
- * @see ServletContext#getRequestDispatcher(java.lang.String)
- * @see ServletContext#getNamedDispatcher(java.lang.String)
- * @see ServletRequest#getRequestDispatcher(java.lang.String)
+ * Forwards a request from
+ * a servlet to another resource (servlet, JSP file, or
+ * HTML file) on the server. This method allows
+ * one servlet to do preliminary processing of
+ * a request and another resource to generate
+ * the response.
+ *
+ * <p>For a <code>RequestDispatcher</code> obtained via
+ * <code>getRequestDispatcher()</code>, the <code>ServletRequest</code>
+ * object has its path elements and parameters adjusted to match
+ * the path of the target resource.
+ *
+ * <p><code>forward</code> should be called before the response has been
+ * committed to the client (before response body output has been flushed).
+ * If the response already has been committed, this method throws
+ * an <code>IllegalStateException</code>.
+ * Uncommitted output in the response buffer is automatically cleared
+ * before the forward.
+ *
+ * <p>The request and response parameters must be either the same
+ * objects as were passed to the calling servlet's service method or be
+ * subclasses of the {@link ServletRequestWrapper} or {@link ServletResponseWrapper} classes
+ * that wrap them.
+ *
+ *
+ * @param request a {@link ServletRequest} object
+ * that represents the request the client
+ * makes of the servlet
+ *
+ * @param response a {@link ServletResponse} object
+ * that represents the response the servlet
+ * returns to the client
+ *
+ * @exception ServletException if the target resource throws this exception
+ *
+ * @exception IOException if the target resource throws this exception
+ *
+ * @exception IllegalStateException if the response was already committed
+ *
*/
-public interface RequestDispatcher
-{
+ public void forward(ServletRequest request, ServletResponse response)
+ throws ServletException, IOException;
- /**
- * Forwards a request from a servlet to another resource (servlet, JSP file,
- * or HTML file) on the server. This method allows one servlet to do
- * preliminary processing of a request and another resource to generate the
- * response.
- * <p>
- * For a <code>RequestDispatcher</code> obtained via
- * <code>getRequestDispatcher()</code>, the <code>ServletRequest</code>
- * object has its path elements and parameters adjusted to match the path of
- * the target resource.
- * <p>
- * <code>forward</code> should be called before the response has been
- * committed to the client (before response body output has been flushed). If
- * the response already has been committed, this method throws an
- * <code>IllegalStateException</code>. Uncommitted output in the response
- * buffer is automatically cleared before the forward.
- * <p>
- * The request and response parameters must be either the same objects as
- * were passed to the calling servlet's service method or be subclasses of
- * the {@link ServletRequestWrapper} or {@link ServletResponseWrapper}
- * classes that wrap them.
- *
- * @param request
- * a {@link ServletRequest} object that represents the request the
- * client makes of the servlet
- * @param response
- * a {@link ServletResponse} object that represents the response
- * the servlet returns to the client
- * @exception ServletException
- * if the target resource throws this exception
- * @exception IOException
- * if the target resource throws this exception
- * @exception IllegalStateException
- * if the response was already committed
- */
- public void forward(ServletRequest request, ServletResponse response) throws ServletException, IOException;
- /**
- * Includes the content of a resource (servlet, JSP page, HTML file) in the
- * response. In essence, this method enables programmatic server-side
- * includes.
- * <p>
- * The {@link ServletResponse} object has its path elements and parameters
- * remain unchanged from the caller's. The included servlet cannot change the
- * response status code or set headers; any attempt to make a change is
- * ignored.
- * <p>
- * The request and response parameters must be either the same objects as
- * were passed to the calling servlet's service method or be subclasses of
- * the {@link ServletRequestWrapper} or {@link ServletResponseWrapper}
- * classes that wrap them.
- *
- * @param request
- * a {@link ServletRequest} object that contains the client's
- * request
- * @param response
- * a {@link ServletResponse} object that contains the servlet's
- * response
- * @exception ServletException
- * if the included resource throws this exception
- * @exception IOException
- * if the included resource throws this exception
- */
- public void include(ServletRequest request, ServletResponse response) throws ServletException, IOException;
+ /**
+ *
+ * Includes the content of a resource (servlet, JSP page,
+ * HTML file) in the response. In essence, this method enables
+ * programmatic server-side includes.
+ *
+ * <p>The {@link ServletResponse} object has its path elements
+ * and parameters remain unchanged from the caller's. The included
+ * servlet cannot change the response status code or set headers;
+ * any attempt to make a change is ignored.
+ *
+ * <p>The request and response parameters must be either the same
+ * objects as were passed to the calling servlet's service method or be
+ * subclasses of the {@link ServletRequestWrapper} or {@link ServletResponseWrapper} classes
+ * that wrap them.
+ *
+ *
+ *
+ * @param request a {@link ServletRequest} object
+ * that contains the client's request
+ *
+ * @param response a {@link ServletResponse} object
+ * that contains the servlet's response
+ *
+ * @exception ServletException if the included resource throws this exception
+ *
+ * @exception IOException if the included resource throws this exception
+ *
+ *
+ */
+
+ public void include(ServletRequest request, ServletResponse response)
+ throws ServletException, IOException;
}
+
+
+
+
+
+
+
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/Servlet.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/Servlet.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/Servlet.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,165 +1,193 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
package javax.servlet;
import java.io.IOException;
+
/**
* Defines methods that all servlets must implement.
- * <p>
- * A servlet is a small Java program that runs within a Web server. Servlets
- * receive and respond to requests from Web clients, usually across HTTP, the
- * HyperText Transfer Protocol.
- * <p>
- * To implement this interface, you can write a generic servlet that extends
- * <code>javax.servlet.GenericServlet</code> or an HTTP servlet that extends
- * <code>javax.servlet.http.HttpServlet</code>.
- * <p>
- * This interface defines methods to initialize a servlet, to service requests,
- * and to remove a servlet from the server. These are known as life-cycle
- * methods and are called in the following sequence:
+ *
+ * <p>A servlet is a small Java program that runs within a Web server.
+ * Servlets receive and respond to requests from Web clients,
+ * usually across HTTP, the HyperText Transfer Protocol.
+ *
+ * <p>To implement this interface, you can write a generic servlet
+ * that extends
+ * <code>javax.servlet.GenericServlet</code> or an HTTP servlet that
+ * extends <code>javax.servlet.http.HttpServlet</code>.
+ *
+ * <p>This interface defines methods to initialize a servlet,
+ * to service requests, and to remove a servlet from the server.
+ * These are known as life-cycle methods and are called in the
+ * following sequence:
* <ol>
- * <li>The servlet is constructed, then initialized with the <code>init</code>
- * method.</li>
- * <li>Any calls from clients to the <code>service</code> method are handled.</li>
- * <li>The servlet is taken out of service, then destroyed with the
- * <code>destroy</code> method, then garbage collected and finalized.</li>
+ * <li>The servlet is constructed, then initialized with the <code>init</code> method.
+ * <li>Any calls from clients to the <code>service</code> method are handled.
+ * <li>The servlet is taken out of service, then destroyed with the
+ * <code>destroy</code> method, then garbage collected and finalized.
* </ol>
- * <p>
- * In addition to the life-cycle methods, this interface provides the
- * <code>getServletConfig</code> method, which the servlet can use to get any
- * startup information, and the <code>getServletInfo</code> method, which
- * allows the servlet to return basic information about itself, such as author,
- * version, and copyright.
- *
- * @author Various
- * @see GenericServlet
- * @see javax.servlet.http.HttpServlet
+ *
+ * <p>In addition to the life-cycle methods, this interface
+ * provides the <code>getServletConfig</code> method, which the servlet
+ * can use to get any startup information, and the <code>getServletInfo</code>
+ * method, which allows the servlet to return basic information about itself,
+ * such as author, version, and copyright.
+ *
+ * @author Various
+ * @version $Version$
+ *
+ * @see GenericServlet
+ * @see javax.servlet.http.HttpServlet
+ *
*/
-public interface Servlet
-{
- /**
- * Called by the servlet container to indicate to a servlet that the servlet
- * is being placed into service.
- * <p>
- * The servlet container calls the <code>init</code> method exactly once
- * after instantiating the servlet. The <code>init</code> method must
- * complete successfully before the servlet can receive any requests.
- * <p>
- * The servlet container cannot place the servlet into service if the
- * <code>init</code> method
- * <ol>
- * <li>Throws a <code>ServletException</code></li>
- * <li>Does not return within a time period defined by the Web server</li>
- * </ol>
- *
- * @param config
- * a <code>ServletConfig</code> object containing the servlet's
- * configuration and initialization parameters
- * @exception ServletException
- * if an exception has occurred that interferes with the
- * servlet's normal operation
- * @see UnavailableException
- * @see #getServletConfig
- */
+public interface Servlet {
- public void init(ServletConfig config) throws ServletException;
+ /**
+ * Called by the servlet container to indicate to a servlet that the
+ * servlet is being placed into service.
+ *
+ * <p>The servlet container calls the <code>init</code>
+ * method exactly once after instantiating the servlet.
+ * The <code>init</code> method must complete successfully
+ * before the servlet can receive any requests.
+ *
+ * <p>The servlet container cannot place the servlet into service
+ * if the <code>init</code> method
+ * <ol>
+ * <li>Throws a <code>ServletException</code>
+ * <li>Does not return within a time period defined by the Web server
+ * </ol>
+ *
+ *
+ * @param config a <code>ServletConfig</code> object
+ * containing the servlet's
+ * configuration and initialization parameters
+ *
+ * @exception ServletException if an exception has occurred that
+ * interferes with the servlet's normal
+ * operation
+ *
+ * @see UnavailableException
+ * @see #getServletConfig
+ *
+ */
- /**
- * Returns a {@link ServletConfig} object, which contains initialization and
- * startup parameters for this servlet. The <code>ServletConfig</code>
- * object returned is the one passed to the <code>init</code> method.
- * <p>
- * Implementations of this interface are responsible for storing the
- * <code>ServletConfig</code> object so that this method can return it. The
- * {@link GenericServlet} class, which implements this interface, already
- * does this.
- *
- * @return the <code>ServletConfig</code> object that initializes this
- * servlet
- * @see #init
- */
+ public void init(ServletConfig config) throws ServletException;
+
+
- public ServletConfig getServletConfig();
+ /**
+ *
+ * Returns a {@link ServletConfig} object, which contains
+ * initialization and startup parameters for this servlet.
+ * The <code>ServletConfig</code> object returned is the one
+ * passed to the <code>init</code> method.
+ *
+ * <p>Implementations of this interface are responsible for storing the
+ * <code>ServletConfig</code> object so that this
+ * method can return it. The {@link GenericServlet}
+ * class, which implements this interface, already does this.
+ *
+ * @return the <code>ServletConfig</code> object
+ * that initializes this servlet
+ *
+ * @see #init
+ *
+ */
- /**
- * Called by the servlet container to allow the servlet to respond to a
- * request.
- * <p>
- * This method is only called after the servlet's <code>init()</code>
- * method has completed successfully.
- * <p>
- * The status code of the response always should be set for a servlet that
- * throws or sends an error.
- * <p>
- * Servlets typically run inside multithreaded servlet containers that can
- * handle multiple requests concurrently. Developers must be aware to
- * synchronize access to any shared resources such as files, network
- * connections, and as well as the servlet's class and instance variables.
- * More information on multithreaded programming in Java is available in <a
- * href="http://java.sun.com/Series/Tutorial/java/threads/multithreaded.html">
- * the Java tutorial on multi-threaded programming</a>.
- *
- * @param req
- * the <code>ServletRequest</code> object that contains the
- * client's request
- * @param res
- * the <code>ServletResponse</code> object that contains the
- * servlet's response
- * @exception ServletException
- * if an exception occurs that interferes with the servlet's
- * normal operation
- * @exception IOException
- * if an input or output exception occurs
- */
+ public ServletConfig getServletConfig();
+
+
- public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException;
+ /**
+ * Called by the servlet container to allow the servlet to respond to
+ * a request.
+ *
+ * <p>This method is only called after the servlet's <code>init()</code>
+ * method has completed successfully.
+ *
+ * <p> The status code of the response always should be set for a servlet
+ * that throws or sends an error.
+ *
+ *
+ * <p>Servlets typically run inside multithreaded servlet containers
+ * that can handle multiple requests concurrently. Developers must
+ * be aware to synchronize access to any shared resources such as files,
+ * network connections, and as well as the servlet's class and instance
+ * variables.
+ * More information on multithreaded programming in Java is available in
+ * <a href="http://java.sun.com/Series/Tutorial/java/threads/multithreaded.html">
+ * the Java tutorial on multi-threaded programming</a>.
+ *
+ *
+ * @param req the <code>ServletRequest</code> object that contains
+ * the client's request
+ *
+ * @param res the <code>ServletResponse</code> object that contains
+ * the servlet's response
+ *
+ * @exception ServletException if an exception occurs that interferes
+ * with the servlet's normal operation
+ *
+ * @exception IOException if an input or output exception occurs
+ *
+ */
- /**
- * Returns information about the servlet, such as author, version, and
- * copyright.
- * <p>
- * The string that this method returns should be plain text and not markup of
- * any kind (such as HTML, XML, etc.).
- *
- * @return a <code>String</code> containing servlet information
- */
+ public void service(ServletRequest req, ServletResponse res)
+ throws ServletException, IOException;
+
+
- public String getServletInfo();
+ /**
+ * Returns information about the servlet, such
+ * as author, version, and copyright.
+ *
+ * <p>The string that this method returns should
+ * be plain text and not markup of any kind (such as HTML, XML,
+ * etc.).
+ *
+ * @return a <code>String</code> containing servlet information
+ *
+ */
- /**
- * Called by the servlet container to indicate to a servlet that the servlet
- * is being taken out of service. This method is only called once all threads
- * within the servlet's <code>service</code> method have exited or after a
- * timeout period has passed. After the servlet container calls this method,
- * it will not call the <code>service</code> method again on this servlet.
- * <p>
- * This method gives the servlet an opportunity to clean up any resources
- * that are being held (for example, memory, file handles, threads) and make
- * sure that any persistent state is synchronized with the servlet's current
- * state in memory.
- */
+ public String getServletInfo();
+
+
- public void destroy();
+ /**
+ *
+ * Called by the servlet container to indicate to a servlet that the
+ * servlet is being taken out of service. This method is
+ * only called once all threads within the servlet's
+ * <code>service</code> method have exited or after a timeout
+ * period has passed. After the servlet container calls this
+ * method, it will not call the <code>service</code> method again
+ * on this servlet.
+ *
+ * <p>This method gives the servlet an opportunity
+ * to clean up any resources that are being held (for example, memory,
+ * file handles, threads) and make sure that any persistent state is
+ * synchronized with the servlet's current state in memory.
+ *
+ */
+
+ public void destroy();
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletConfig.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletConfig.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletConfig.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,82 +1,95 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.util.Enumeration;
+
+
/**
- * A servlet configuration object used by a servlet container to pass
- * information to a servlet during initialization.
+ *
+ * A servlet configuration object used by a servlet container
+ * to pass information to a servlet during initialization.
+ *
*/
+
+public interface ServletConfig {
+
-public interface ServletConfig
-{
+ /**
+ * Returns the name of this servlet instance.
+ * The name may be provided via server administration, assigned in the
+ * web application deployment descriptor, or for an unregistered (and thus
+ * unnamed) servlet instance it will be the servlet's class name.
+ *
+ * @return the name of the servlet instance
+ *
+ *
+ *
+ */
- /**
- * Returns the name of this servlet instance. The name may be provided via
- * server administration, assigned in the web application deployment
- * descriptor, or for an unregistered (and thus unnamed) servlet instance it
- * will be the servlet's class name.
- *
- * @return the name of the servlet instance
- */
+ public String getServletName();
- public String getServletName();
+ /**
+ * Returns a reference to the {@link ServletContext} in which the caller
+ * is executing.
+ *
+ *
+ * @return a {@link ServletContext} object, used
+ * by the caller to interact with its servlet
+ * container
+ *
+ * @see ServletContext
+ *
+ */
- /**
- * Returns a reference to the {@link ServletContext} in which the caller is
- * executing.
- *
- * @return a {@link ServletContext} object, used by the caller to interact
- * with its servlet container
- * @see ServletContext
- */
+ public ServletContext getServletContext();
+
+ /**
+ * Returns a <code>String</code> containing the value of the
+ * named initialization parameter, or <code>null</code> if
+ * the parameter does not exist.
+ *
+ * @param name a <code>String</code> specifying the name
+ * of the initialization parameter
+ *
+ * @return a <code>String</code> containing the value
+ * of the initialization parameter
+ *
+ */
- public ServletContext getServletContext();
+ public String getInitParameter(String name);
- /**
- * Returns a <code>String</code> containing the value of the named
- * initialization parameter, or <code>null</code> if the parameter does not
- * exist.
- *
- * @param name
- * a <code>String</code> specifying the name of the
- * initialization parameter
- * @return a <code>String</code> containing the value of the initialization
- * parameter
- */
- public String getInitParameter(String name);
+ /**
+ * Returns the names of the servlet's initialization parameters
+ * as an <code>Enumeration</code> of <code>String</code> objects,
+ * or an empty <code>Enumeration</code> if the servlet has
+ * no initialization parameters.
+ *
+ * @return an <code>Enumeration</code> of <code>String</code>
+ * objects containing the names of the servlet's
+ * initialization parameters
+ *
+ *
+ *
+ */
- /**
- * Returns the names of the servlet's initialization parameters as an
- * <code>Enumeration</code> of <code>String</code> objects, or an empty
- * <code>Enumeration</code> if the servlet has no initialization
- * parameters.
- *
- * @return an <code>Enumeration</code> of <code>String</code> objects
- * containing the names of the servlet's initialization parameters
- */
+ public Enumeration getInitParameterNames();
- public Enumeration getInitParameterNames();
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContext.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContext.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContext.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,24 +1,19 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.io.InputStream;
@@ -27,123 +22,122 @@
import java.util.Enumeration;
import java.util.Set;
+
/**
- * Defines a set of methods that a servlet uses to communicate with its servlet
- * container, for example, to get the MIME type of a file, dispatch requests, or
- * write to a log file.
- * <p>
- * There is one context per "web application" per Java Virtual Machine. (A "web
- * application" is a collection of servlets and content installed under a
+ *
+ * Defines a set of methods that a servlet uses to communicate with its
+ * servlet container, for example, to get the MIME type of a file, dispatch
+ * requests, or write to a log file.
+ *
+ * <p>There is one context per "web application" per Java Virtual Machine. (A
+ * "web application" is a collection of servlets and content installed under a
* specific subset of the server's URL namespace such as <code>/catalog</code>
- * and possibly installed via a <code>.war</code> file.)
- * <p>
- * In the case of a web application marked "distributed" in its deployment
- * descriptor, there will be one context instance for each virtual machine. In
- * this situation, the context cannot be used as a location to share global
- * information (because the information won't be truly global). Use an external
- * resource like a database instead.
- * <p>
- * The <code>ServletContext</code> object is contained within the
- * {@link ServletConfig} object, which the Web server provides the servlet when
- * the servlet is initialized.
- *
- * @author Various
- * @see Servlet#getServletConfig
- * @see ServletConfig#getServletContext
+ * and possibly installed via a <code>.war</code> file.)
+ *
+ * <p>In the case of a web
+ * application marked "distributed" in its deployment descriptor, there will
+ * be one context instance for each virtual machine. In this situation, the
+ * context cannot be used as a location to share global information (because
+ * the information won't be truly global). Use an external resource like
+ * a database instead.
+ *
+ * <p>The <code>ServletContext</code> object is contained within
+ * the {@link ServletConfig} object, which the Web server provides the
+ * servlet when the servlet is initialized.
+ *
+ * @author Various
+ * @version $Version$
+ *
+ * @see Servlet#getServletConfig
+ * @see ServletConfig#getServletContext
+ *
*/
-public interface ServletContext
-{
+public interface ServletContext {
- /**
- * Returns the context path of the web application.
- * <p>
- * The context path is the portion of the request URI that is used to select
- * 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 "".
- * <p>
- * It is possible that a servlet container may match a context by more than
- * one context path. In such cases the
- * {@link javax.servlet.http.HttpServletRequest#getContextPath()} will return
- * the actual context path used by the request and it may differ from the
- * path returned by this method. The context path returned by this method
- * should be considered as the prime or preferred context path of the
- * application.
- *
- * @return The context path of the web application, or "" for the default
- * (root) context
- * @see javax.servlet.http.HttpServletRequest#getContextPath()
- * @since Servlet 2.5
- */
- public String getContextPath();
- /**
- * Returns a <code>ServletContext</code> object that corresponds to a
- * specified URL on the server.
- * <p>
- * This method allows servlets to gain access to the context for various
- * parts of the server, and as needed obtain {@link RequestDispatcher}
- * objects from the context. The given path must be begin with "/", is
- * interpreted relative to the server's document root and is matched against
- * the context roots of other web applications hosted on this container.
- * <p>
- * In a security conscious environment, the servlet container may return
- * <code>null</code> for a given URL.
- *
- * @param uripath
- * a <code>String</code> specifying the context path of another
- * web application in the container.
- * @return the <code>ServletContext</code> object that corresponds to the
- * named URL, or null if either none exists or the container wishes
- * to restrict this access.
- * @see RequestDispatcher
- */
+ /**
+ * Returns a <code>ServletContext</code> object that
+ * corresponds to a specified URL on the server.
+ *
+ * <p>This method allows servlets to gain
+ * access to the context for various parts of the server, and as
+ * needed obtain {@link RequestDispatcher} objects from the context.
+ * The given path must be begin with "/", is interpreted relative
+ * to the server's document root and is matched against the context roots of
+ * other web applications hosted on this container.
+ *
+ * <p>In a security conscious environment, the servlet container may
+ * return <code>null</code> for a given URL.
+ *
+ * @param uripath a <code>String</code> specifying the context path of
+ * another web application in the container.
+ * @return the <code>ServletContext</code> object that
+ * corresponds to the named URL, or null if either
+ none exists or the container wishes to restrict
+ * this access.
+ *
+ * @see RequestDispatcher
+ *
+ */
- public ServletContext getContext(String uripath);
+ public ServletContext getContext(String uripath);
+
- /**
- * Returns the major version of the Java Servlet API that this servlet
- * container supports. All implementations that comply with Version 2.5 must
- * have this method return the integer 2.
- *
- * @return 2
- */
+ public String getContextPath();
- public int getMajorVersion();
- /**
- * Returns the minor version of the Servlet API that this servlet container
- * supports. All implementations that comply with Version 2.5 must have this
- * method return the integer 5.
- *
- * @return 5
- */
+ /**
+ * Returns the major version of the Java Servlet API that this
+ * servlet container supports. All implementations that comply
+ * with Version 2.4 must have this method
+ * return the integer 2.
+ *
+ * @return 2
+ *
+ */
+
+ public int getMajorVersion();
+
+
- public int getMinorVersion();
+ /**
+ * Returns the minor version of the Servlet API that this
+ * servlet container supports. All implementations that comply
+ * with Version 2.4 must have this method
+ * return the integer 4.
+ *
+ * @return 4
+ *
+ */
- /**
- * Returns the MIME type of the specified file, or <code>null</code> if the
- * MIME type is not known. The MIME type is determined by the configuration
- * of the servlet container, and may be specified in a web application
- * deployment descriptor. Common MIME types are <code>"text/html"</code>
- * and <code>"image/gif"</code>.
- *
- * @param file
- * a <code>String</code> specifying the name of a file
- * @return a <code>String</code> specifying the file's MIME type
- */
+ public int getMinorVersion();
+
+
- public String getMimeType(String file);
+ /**
+ * Returns the MIME type of the specified file, or <code>null</code> if
+ * the MIME type is not known. The MIME type is determined
+ * by the configuration of the servlet container, and may be specified
+ * in a web application deployment descriptor. Common MIME
+ * types are <code>"text/html"</code> and <code>"image/gif"</code>.
+ *
+ *
+ * @param file a <code>String</code> specifying the name
+ * of a file
+ *
+ * @return a <code>String</code> specifying the file's MIME type
+ *
+ */
- /**
- * Returns a directory-like listing of all the paths to resources within the
- * web application whose longest sub-path matches the supplied path argument.
- * Paths indicating subdirectory paths end with a '/'. The returned paths are
- * all relative to the root of the web application and have a leading '/'.
- * For example, for a web application containing<br>
- * <br>
+ public String getMimeType(String file);
+
+ /**
+ * Returns a directory-like listing of all the paths to resources within the web application whose longest sub-path
+ * matches the supplied path argument. Paths indicating subdirectory paths end with a '/'. The returned paths are all
+ * relative to the root of the web application and have a leading '/'. For example, for a web application
+ * containing<br><br>
+
* /welcome.html<br>
* /catalog/index.html<br>
* /catalog/products.html<br>
@@ -151,370 +145,502 @@
* /catalog/offers/music.html<br>
* /customer/login.jsp<br>
* /WEB-INF/web.xml<br>
- * /WEB-INF/classes/com.acme.OrderServlet.class,<br>
- * <br>
- * getResourcePaths("/") returns {"/welcome.html", "/catalog/", "/customer/",
- * "/WEB-INF/"}<br>
- * getResourcePaths("/catalog/") returns {"/catalog/index.html",
- * "/catalog/products.html", "/catalog/offers/"}.<br>
- *
- * @param path
- * the partial path used to match the resources, which must start
- * with a /
- * @return a Set containing the directory listing, or null if there are no
- * resources in the web application whose path begins with the
- * supplied path.
+ * /WEB-INF/classes/com.acme.OrderServlet.class,<br><br>
+ *
+ * getResourcePaths("/") returns {"/welcome.html", "/catalog/", "/customer/", "/WEB-INF/"}<br>
+ * getResourcePaths("/catalog/") returns {"/catalog/index.html", "/catalog/products.html", "/catalog/offers/"}.<br>
+
+
+
+ *@param path the partial path used to match the resources,
+ * which must start with a /
+ *@return a Set containing the directory listing, or null if there are no resources in the web application whose path
+ * begins with the supplied path.
+
* @since Servlet 2.3
*/
+
+ public Set getResourcePaths(String path);
+
+
- public Set getResourcePaths(String path);
+ /**
+ * Returns a URL to the resource that is mapped to a specified
+ * path. The path must begin with a "/" and is interpreted
+ * as relative to the current context root.
+ *
+ * <p>This method allows the servlet container to make a resource
+ * available to servlets from any source. Resources
+ * can be located on a local or remote
+ * file system, in a database, or in a <code>.war</code> file.
+ *
+ * <p>The servlet container must implement the URL handlers
+ * and <code>URLConnection</code> objects that are necessary
+ * to access the resource.
+ *
+ * <p>This method returns <code>null</code>
+ * if no resource is mapped to the pathname.
+ *
+ * <p>Some containers may allow writing to the URL returned by
+ * this method using the methods of the URL class.
+ *
+ * <p>The resource content is returned directly, so be aware that
+ * requesting a <code>.jsp</code> page returns the JSP source code.
+ * Use a <code>RequestDispatcher</code> instead to include results of
+ * an execution.
+ *
+ * <p>This method has a different purpose than
+ * <code>java.lang.Class.getResource</code>,
+ * which looks up resources based on a class loader. This
+ * method does not use class loaders.
+ *
+ * @param path a <code>String</code> specifying
+ * the path to the resource
+ *
+ * @return the resource located at the named path,
+ * or <code>null</code> if there is no resource
+ * at that path
+ *
+ * @exception MalformedURLException if the pathname is not given in
+ * the correct form
+ *
+ */
+
+ public URL getResource(String path) throws MalformedURLException;
+
+
- /**
- * Returns a URL to the resource that is mapped to a specified path. The path
- * must begin with a "/" and is interpreted as relative to the current
- * context root.
- * <p>
- * This method allows the servlet container to make a resource available to
- * servlets from any source. Resources can be located on a local or remote
- * file system, in a database, or in a <code>.war</code> file.
- * <p>
- * The servlet container must implement the URL handlers and
- * <code>URLConnection</code> objects that are necessary to access the
- * resource.
- * <p>
- * This method returns <code>null</code> if no resource is mapped to the
- * pathname.
- * <p>
- * Some containers may allow writing to the URL returned by this method using
- * the methods of the URL class.
- * <p>
- * The resource content is returned directly, so be aware that requesting a
- * <code>.jsp</code> page returns the JSP source code. Use a
- * <code>RequestDispatcher</code> instead to include results of an
- * execution.
- * <p>
- * This method has a different purpose than
- * <code>java.lang.Class.getResource</code>, which looks up resources
- * based on a class loader. This method does not use class loaders.
- *
- * @param path
- * a <code>String</code> specifying the path to the resource
- * @return the resource located at the named path, or <code>null</code> if
- * there is no resource at that path
- * @exception MalformedURLException
- * if the pathname is not given in the correct form
- */
+ /**
+ * Returns the resource located at the named path as
+ * an <code>InputStream</code> object.
+ *
+ * <p>The data in the <code>InputStream</code> can be
+ * of any type or length. The path must be specified according
+ * to the rules given in <code>getResource</code>.
+ * This method returns <code>null</code> if no resource exists at
+ * the specified path.
+ *
+ * <p>Meta-information such as content length and content type
+ * that is available via <code>getResource</code>
+ * method is lost when using this method.
+ *
+ * <p>The servlet container must implement the URL handlers
+ * and <code>URLConnection</code> objects necessary to access
+ * the resource.
+ *
+ * <p>This method is different from
+ * <code>java.lang.Class.getResourceAsStream</code>,
+ * which uses a class loader. This method allows servlet containers
+ * to make a resource available
+ * to a servlet from any location, without using a class loader.
+ *
+ *
+ * @param path a <code>String</code> specifying the path
+ * to the resource
+ *
+ * @return the <code>InputStream</code> returned to the
+ * servlet, or <code>null</code> if no resource
+ * exists at the specified path
+ *
+ *
+ */
- public URL getResource(String path) throws MalformedURLException;
+ public InputStream getResourceAsStream(String path);
+
- /**
- * Returns the resource located at the named path as an
- * <code>InputStream</code> object.
- * <p>
- * The data in the <code>InputStream</code> can be of any type or length.
- * The path must be specified according to the rules given in
- * <code>getResource</code>. This method returns <code>null</code> if no
- * resource exists at the specified path.
- * <p>
- * Meta-information such as content length and content type that is available
- * via <code>getResource</code> method is lost when using this method.
- * <p>
- * The servlet container must implement the URL handlers and
- * <code>URLConnection</code> objects necessary to access the resource.
- * <p>
- * This method is different from
- * <code>java.lang.Class.getResourceAsStream</code>, which uses a class
- * loader. This method allows servlet containers to make a resource available
- * to a servlet from any location, without using a class loader.
- *
- * @param path
- * a <code>String</code> specifying the path to the resource
- * @return the <code>InputStream</code> returned to the servlet, or
- * <code>null</code> if no resource exists at the specified path
- */
- public InputStream getResourceAsStream(String path);
- /**
- * Returns a {@link RequestDispatcher} object that acts as a wrapper for the
- * resource located at the given path. A <code>RequestDispatcher</code>
- * object can be used to forward a request to the resource or to include the
- * resource in a response. The resource can be dynamic or static.
- * <p>
- * The pathname must begin with a "/" and is interpreted as relative to the
- * current context root. Use <code>getContext</code> to obtain a
- * <code>RequestDispatcher</code> for resources in foreign contexts. This
- * method returns <code>null</code> if the <code>ServletContext</code>
- * cannot return a <code>RequestDispatcher</code>.
- *
- * @param path
- * a <code>String</code> specifying the pathname to the resource
- * @return a <code>RequestDispatcher</code> object that acts as a wrapper
- * for the resource at the specified path, or <code>null</code> if
- * the <code>ServletContext</code> cannot return a
- * <code>RequestDispatcher</code>
- * @see RequestDispatcher
- * @see ServletContext#getContext
- */
+ /**
+ *
+ * Returns a {@link RequestDispatcher} object that acts
+ * as a wrapper for the resource located at the given path.
+ * A <code>RequestDispatcher</code> object can be used to forward
+ * a request to the resource or to include the resource in a response.
+ * The resource can be dynamic or static.
+ *
+ * <p>The pathname must begin with a "/" and is interpreted as relative
+ * to the current context root. Use <code>getContext</code> to obtain
+ * a <code>RequestDispatcher</code> for resources in foreign contexts.
+ * This method returns <code>null</code> if the <code>ServletContext</code>
+ * cannot return a <code>RequestDispatcher</code>.
+ *
+ * @param path a <code>String</code> specifying the pathname
+ * to the resource
+ *
+ * @return a <code>RequestDispatcher</code> object
+ * that acts as a wrapper for the resource
+ * at the specified path, or <code>null</code> if
+ * the <code>ServletContext</code> cannot return
+ * a <code>RequestDispatcher</code>
+ *
+ * @see RequestDispatcher
+ * @see ServletContext#getContext
+ *
+ */
- public RequestDispatcher getRequestDispatcher(String path);
+ public RequestDispatcher getRequestDispatcher(String path);
- /**
- * Returns a {@link RequestDispatcher} object that acts as a wrapper for the
- * named servlet.
- * <p>
- * Servlets (and JSP pages also) may be given names via server administration
- * or via a web application deployment descriptor. A servlet instance can
- * determine its name using {@link ServletConfig#getServletName}.
- * <p>
- * This method returns <code>null</code> if the <code>ServletContext</code>
- * cannot return a <code>RequestDispatcher</code> for any reason.
- *
- * @param name
- * a <code>String</code> specifying the name of a servlet to wrap
- * @return a <code>RequestDispatcher</code> object that acts as a wrapper
- * for the named servlet, or <code>null</code> if the
- * <code>ServletContext</code> cannot return a
- * <code>RequestDispatcher</code>
- * @see RequestDispatcher
- * @see ServletContext#getContext
- * @see ServletConfig#getServletName
- */
- public RequestDispatcher getNamedDispatcher(String name);
- /**
- * @deprecated As of Java Servlet API 2.1, with no direct replacement.
- * <p>
- * This method was originally defined to retrieve a servlet from
- * a <code>ServletContext</code>. In this version, this method
- * always returns <code>null</code> and remains only to
- * preserve binary compatibility. This method will be permanently
- * removed in a future version of the Java Servlet API.
- * <p>
- * In lieu of this method, servlets can share information using
- * the <code>ServletContext</code> class and can perform shared
- * business logic by invoking methods on common non-servlet
- * classes.
- */
- @Deprecated
- public Servlet getServlet(String name) throws ServletException;
+ /**
+ * Returns a {@link RequestDispatcher} object that acts
+ * as a wrapper for the named servlet.
+ *
+ * <p>Servlets (and JSP pages also) may be given names via server
+ * administration or via a web application deployment descriptor.
+ * A servlet instance can determine its name using
+ * {@link ServletConfig#getServletName}.
+ *
+ * <p>This method returns <code>null</code> if the
+ * <code>ServletContext</code>
+ * cannot return a <code>RequestDispatcher</code> for any reason.
+ *
+ * @param name a <code>String</code> specifying the name
+ * of a servlet to wrap
+ *
+ * @return a <code>RequestDispatcher</code> object
+ * that acts as a wrapper for the named servlet,
+ * or <code>null</code> if the <code>ServletContext</code>
+ * cannot return a <code>RequestDispatcher</code>
+ *
+ * @see RequestDispatcher
+ * @see ServletContext#getContext
+ * @see ServletConfig#getServletName
+ *
+ */
- /**
- * @deprecated As of Java Servlet API 2.0, with no replacement.
- * <p>
- * This method was originally defined to return an
- * <code>Enumeration</code> of all the servlets known to this
- * servlet context. In this version, this method always returns
- * an empty enumeration and remains only to preserve binary
- * compatibility. This method will be permanently removed in a
- * future version of the Java Servlet API.
- */
- @Deprecated
- public Enumeration getServlets();
+ public RequestDispatcher getNamedDispatcher(String name);
+
+
+
+
+ /**
+ *
+ * @deprecated As of Java Servlet API 2.1, with no direct replacement.
+ *
+ * <p>This method was originally defined to retrieve a servlet
+ * from a <code>ServletContext</code>. In this version, this method
+ * always returns <code>null</code> and remains only to preserve
+ * binary compatibility. This method will be permanently removed
+ * in a future version of the Java Servlet API.
+ *
+ * <p>In lieu of this method, servlets can share information using the
+ * <code>ServletContext</code> class and can perform shared business logic
+ * by invoking methods on common non-servlet classes.
+ *
+ */
- /**
- * @deprecated As of Java Servlet API 2.1, with no replacement.
- * <p>
- * This method was originally defined to return an
- * <code>Enumeration</code> of all the servlet names known to
- * this context. In this version, this method always returns an
- * empty <code>Enumeration</code> and remains only to preserve
- * binary compatibility. This method will be permanently removed
- * in a future version of the Java Servlet API.
- */
+ public Servlet getServlet(String name) throws ServletException;
+
+
+
+
+
- public Enumeration getServletNames();
+ /**
+ *
+ * @deprecated As of Java Servlet API 2.0, with no replacement.
+ *
+ * <p>This method was originally defined to return an <code>Enumeration</code>
+ * of all the servlets known to this servlet context. In this
+ * version, this method always returns an empty enumeration and
+ * remains only to preserve binary compatibility. This method
+ * will be permanently removed in a future version of the Java
+ * Servlet API.
+ *
+ */
+
+ public Enumeration getServlets();
+
+
+
+
+
- /**
- * Writes the specified message to a servlet log file, usually an event log.
- * The name and type of the servlet log file is specific to the servlet
- * container.
- *
- * @param msg
- * a <code>String</code> specifying the message to be written to
- * the log file
- */
+ /**
+ * @deprecated As of Java Servlet API 2.1, with no replacement.
+ *
+ * <p>This method was originally defined to return an
+ * <code>Enumeration</code>
+ * of all the servlet names known to this context. In this version,
+ * this method always returns an empty <code>Enumeration</code> and
+ * remains only to preserve binary compatibility. This method will
+ * be permanently removed in a future version of the Java Servlet API.
+ *
+ */
+
+ public Enumeration getServletNames();
+
+
+
+
+
+ /**
+ *
+ * Writes the specified message to a servlet log file, usually
+ * an event log. The name and type of the servlet log file is
+ * specific to the servlet container.
+ *
+ *
+ * @param msg a <code>String</code> specifying the
+ * message to be written to the log file
+ *
+ */
+
+ public void log(String msg);
+
+
+
+
- public void log(String msg);
+ /**
+ * @deprecated As of Java Servlet API 2.1, use
+ * {@link #log(String message, Throwable throwable)}
+ * instead.
+ *
+ * <p>This method was originally defined to write an
+ * exception's stack trace and an explanatory error message
+ * to the servlet log file.
+ *
+ */
- /**
- * @deprecated As of Java Servlet API 2.1, use
- * {@link #log(String message, Throwable throwable)} instead.
- * <p>
- * This method was originally defined to write an exception's
- * stack trace and an explanatory error message to the servlet
- * log file.
- */
- @Deprecated
- public void log(Exception exception, String msg);
+ public void log(Exception exception, String msg);
+
+
+
+
- /**
- * Writes an explanatory message and a stack trace for a given
- * <code>Throwable</code> exception to the servlet log file. The name and
- * type of the servlet log file is specific to the servlet container, usually
- * an event log.
- *
- * @param message
- * a <code>String</code> that describes the error or exception
- * @param throwable
- * the <code>Throwable</code> error or exception
- */
+ /**
+ * Writes an explanatory message and a stack trace
+ * for a given <code>Throwable</code> exception
+ * to the servlet log file. The name and type of the servlet log
+ * file is specific to the servlet container, usually an event log.
+ *
+ *
+ * @param message a <code>String</code> that
+ * describes the error or exception
+ *
+ * @param throwable the <code>Throwable</code> error
+ * or exception
+ *
+ */
+
+ public void log(String message, Throwable throwable);
+
+
+
+
+
+ /**
+ * Returns a <code>String</code> containing the real path
+ * for a given virtual path. For example, the path "/index.html"
+ * returns the absolute file path on the server's filesystem would be
+ * served by a request for "http://host/contextPath/index.html",
+ * where contextPath is the context path of this ServletContext..
+ *
+ * <p>The real path returned will be in a form
+ * appropriate to the computer and operating system on
+ * which the servlet container is running, including the
+ * proper path separators. This method returns <code>null</code>
+ * if the servlet container cannot translate the virtual path
+ * to a real path for any reason (such as when the content is
+ * being made available from a <code>.war</code> archive).
+ *
+ *
+ * @param path a <code>String</code> specifying a virtual path
+ *
+ *
+ * @return a <code>String</code> specifying the real path,
+ * or null if the translation cannot be performed
+ *
+ *
+ */
- public void log(String message, Throwable throwable);
+ public String getRealPath(String path);
+
+
- /**
- * Returns a <code>String</code> containing the real path for a given
- * virtual path. For example, the path "/index.html" returns the absolute
- * file path on the server's filesystem would be served by a request for
- * "http://host/contextPath/index.html", where contextPath is the context
- * path of this ServletContext..
- * <p>
- * The real path returned will be in a form appropriate to the computer and
- * operating system on which the servlet container is running, including the
- * proper path separators. This method returns <code>null</code> if the
- * servlet container cannot translate the virtual path to a real path for any
- * reason (such as when the content is being made available from a
- * <code>.war</code> archive).
- *
- * @param path
- * a <code>String</code> specifying a virtual path
- * @return a <code>String</code> specifying the real path, or null if the
- * translation cannot be performed
- */
- public String getRealPath(String path);
+ /**
+ * Returns the name and version of the servlet container on which
+ * the servlet is running.
+ *
+ * <p>The form of the returned string is
+ * <i>servername</i>/<i>versionnumber</i>.
+ * For example, the JavaServer Web Development Kit may return the string
+ * <code>JavaServer Web Dev Kit/1.0</code>.
+ *
+ * <p>The servlet container may return other optional information
+ * after the primary string in parentheses, for example,
+ * <code>JavaServer Web Dev Kit/1.0 (JDK 1.1.6; Windows NT 4.0 x86)</code>.
+ *
+ *
+ * @return a <code>String</code> containing at least the
+ * servlet container name and version number
+ *
+ */
- /**
- * Returns the name and version of the servlet container on which the servlet
- * is running.
- * <p>
- * The form of the returned string is <i>servername</i>/<i>versionnumber</i>.
- * For example, the JavaServer Web Development Kit may return the string
- * <code>JavaServer Web Dev Kit/1.0</code>.
- * <p>
- * The servlet container may return other optional information after the
- * primary string in parentheses, for example,
- * <code>JavaServer Web Dev Kit/1.0 (JDK 1.1.6; Windows NT 4.0 x86)</code>.
- *
- * @return a <code>String</code> containing at least the servlet container
- * name and version number
- */
+ public String getServerInfo();
+
+
- public String getServerInfo();
- /**
- * Returns a <code>String</code> containing the value of the named
- * context-wide initialization parameter, or <code>null</code> if the
- * parameter does not exist.
- * <p>
- * This method can make available configuration information useful to an
- * entire "web application". For example, it can provide a webmaster's email
- * address or the name of a system that holds critical data.
- *
- * @param name
- * a <code>String</code> containing the name of the parameter
- * whose value is requested
- * @return a <code>String</code> containing at least the servlet container
- * name and version number
- * @see ServletConfig#getInitParameter
- */
+ /**
+ * Returns a <code>String</code> containing the value of the named
+ * context-wide initialization parameter, or <code>null</code> if the
+ * parameter does not exist.
+ *
+ * <p>This method can make available configuration information useful
+ * to an entire "web application". For example, it can provide a
+ * webmaster's email address or the name of a system that holds
+ * critical data.
+ *
+ * @param name a <code>String</code> containing the name of the
+ * parameter whose value is requested
+ *
+ * @return a <code>String</code> containing at least the
+ * servlet container name and version number
+ *
+ * @see ServletConfig#getInitParameter
+ */
- public String getInitParameter(String name);
+ public String getInitParameter(String name);
+
+
- /**
- * Returns the names of the context's initialization parameters as an
- * <code>Enumeration</code> of <code>String</code> objects, or an empty
- * <code>Enumeration</code> if the context has no initialization
- * parameters.
- *
- * @return an <code>Enumeration</code> of <code>String</code> objects
- * containing the names of the context's initialization parameters
- * @see ServletConfig#getInitParameter
- */
- public Enumeration getInitParameterNames();
+ /**
+ * Returns the names of the context's initialization parameters as an
+ * <code>Enumeration</code> of <code>String</code> objects, or an
+ * empty <code>Enumeration</code> if the context has no initialization
+ * parameters.
+ *
+ * @return an <code>Enumeration</code> of <code>String</code>
+ * objects containing the names of the context's
+ * initialization parameters
+ *
+ * @see ServletConfig#getInitParameter
+ */
- /**
- * Returns the servlet container attribute with the given name, or
- * <code>null</code> if there is no attribute by that name. An attribute
- * allows a servlet container to give the servlet additional information not
- * already provided by this interface. See your server documentation for
- * information about its attributes. A list of supported attributes can be
- * retrieved using <code>getAttributeNames</code>.
- * <p>
- * The attribute is returned as a <code>java.lang.Object</code> or some
- * subclass. Attribute names should follow the same convention as package
- * names. The Java Servlet API specification reserves names matching
- * <code>java.*</code>, <code>javax.*</code>, and <code>sun.*</code>.
- *
- * @param name
- * a <code>String</code> specifying the name of the attribute
- * @return an <code>Object</code> containing the value of the attribute, or
- * <code>null</code> if no attribute exists matching the given name
- * @see ServletContext#getAttributeNames
- */
+ public Enumeration getInitParameterNames();
+
+
- public Object getAttribute(String name);
+ /**
+ * Returns the servlet container attribute with the given name,
+ * or <code>null</code> if there is no attribute by that name.
+ * An attribute allows a servlet container to give the
+ * servlet additional information not
+ * already provided by this interface. See your
+ * server documentation for information about its attributes.
+ * A list of supported attributes can be retrieved using
+ * <code>getAttributeNames</code>.
+ *
+ * <p>The attribute is returned as a <code>java.lang.Object</code>
+ * or some subclass.
+ * Attribute names should follow the same convention as package
+ * names. The Java Servlet API specification reserves names
+ * matching <code>java.*</code>, <code>javax.*</code>,
+ * and <code>sun.*</code>.
+ *
+ *
+ * @param name a <code>String</code> specifying the name
+ * of the attribute
+ *
+ * @return an <code>Object</code> containing the value
+ * of the attribute, or <code>null</code>
+ * if no attribute exists matching the given
+ * name
+ *
+ * @see ServletContext#getAttributeNames
+ *
+ */
+
+ public Object getAttribute(String name);
+
+
+
- /**
- * Returns an <code>Enumeration</code> containing the attribute names
- * available within this servlet context. Use the {@link #getAttribute}
- * method with an attribute name to get the value of an attribute.
- *
- * @return an <code>Enumeration</code> of attribute names
- * @see #getAttribute
- */
+ /**
+ * Returns an <code>Enumeration</code> containing the
+ * attribute names available
+ * within this servlet context. Use the
+ * {@link #getAttribute} method with an attribute name
+ * to get the value of an attribute.
+ *
+ * @return an <code>Enumeration</code> of attribute
+ * names
+ *
+ * @see #getAttribute
+ *
+ */
- public Enumeration getAttributeNames();
+ public Enumeration getAttributeNames();
+
+
+
+
+ /**
+ *
+ * Binds an object to a given attribute name in this servlet context. If
+ * the name specified is already used for an attribute, this
+ * method will replace the attribute with the new to the new attribute.
+ * <p>If listeners are configured on the <code>ServletContext</code> the
+ * container notifies them accordingly.
+ * <p>
+ * If a null value is passed, the effect is the same as calling
+ * <code>removeAttribute()</code>.
+ *
+ * <p>Attribute names should follow the same convention as package
+ * names. The Java Servlet API specification reserves names
+ * matching <code>java.*</code>, <code>javax.*</code>, and
+ * <code>sun.*</code>.
+ *
+ *
+ * @param name a <code>String</code> specifying the name
+ * of the attribute
+ *
+ * @param object an <code>Object</code> representing the
+ * attribute to be bound
+ *
+ *
+ *
+ */
+
+ public void setAttribute(String name, Object object);
+
+
- /**
- * Binds an object to a given attribute name in this servlet context. If the
- * name specified is already used for an attribute, this method will replace
- * the attribute with the new to the new attribute.
- * <p>
- * If listeners are configured on the <code>ServletContext</code> the
- * container notifies them accordingly.
- * <p>
- * If a null value is passed, the effect is the same as calling
- * <code>removeAttribute()</code>.
- * <p>
- * Attribute names should follow the same convention as package names. The
- * Java Servlet API specification reserves names matching <code>java.*</code>,
- * <code>javax.*</code>, and <code>sun.*</code>.
- *
- * @param name
- * a <code>String</code> specifying the name of the attribute
- * @param object
- * an <code>Object</code> representing the attribute to be bound
- */
- public void setAttribute(String name, Object object);
- /**
- * Removes the attribute with the given name from the servlet context. After
- * removal, subsequent calls to {@link #getAttribute} to retrieve the
- * attribute's value will return <code>null</code>.
- * <p>
- * If listeners are configured on the <code>ServletContext</code> the
- * container notifies them accordingly.
- *
- * @param name
- * a <code>String</code> specifying the name of the attribute to
- * be removed
- */
+ /**
+ * Removes the attribute with the given name from
+ * the servlet context. After removal, subsequent calls to
+ * {@link #getAttribute} to retrieve the attribute's value
+ * will return <code>null</code>.
- public void removeAttribute(String name);
+ * <p>If listeners are configured on the <code>ServletContext</code> the
+ * container notifies them accordingly.
- /**
- * Returns the name of this web application corresponding to this
- * ServletContext as specified in the deployment descriptor for this web
- * application by the display-name element.
- *
- * @return The name of the web application or null if no name has been
- * declared in the deployment descriptor.
- * @since Servlet 2.3
- */
+ *
+ *
+ * @param name a <code>String</code> specifying the name
+ * of the attribute to be removed
+ *
+ */
- public String getServletContextName();
+ public void removeAttribute(String name);
+
+ /**
+ * Returns the name of this web application corresponding to this ServletContext as specified in the deployment
+ * descriptor for this web application by the display-name element.
+ *
+ *
+ * @return The name of the web application or null if no name has been declared in the deployment descriptor.
+ * @since Servlet 2.3
+ */
+
+ public String getServletContextName();
}
+
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextAttributeEvent.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextAttributeEvent.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextAttributeEvent.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,68 +1,60 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
-/**
- * This is the event class for notifications about changes to the attributes of
- * the servlet context of a web application.
- *
- * @see ServletContextAttributeListener
- * @since v 2.3
- */
-public class ServletContextAttributeEvent extends ServletContextEvent
-{
- private String name;
+ /**
+ * This is the event class for notifications about changes to the attributes of the
+ * servlet context of a web application.
+ * @see ServletContextAttributeListener
+ * @since v 2.3
+ */
- private Object value;
+public class ServletContextAttributeEvent extends ServletContextEvent {
+ private String name;
+ private Object value;
- /**
- * Construct a ServletContextAttributeEvent from the given context for the *
- * given attribute name and attribute value.
- */
- public ServletContextAttributeEvent(ServletContext source, String name, Object value)
- {
- super(source);
- this.name = name;
- this.value = value;
- }
-
- /**
- * Return the name of the attribute that changed on the ServletContext.
- */
- public String getName()
- {
- return this.name;
- }
-
- /**
- * Returns the value of the attribute that has been added, removed, or
- * replaced. If the attribute was added, this is the value of the attribute.
- * If the attribute was removed, this is the value of the removed attribute.
- * If the attribute was replaced, this is the old value of the attribute.
- */
-
- public Object getValue()
- {
- return this.value;
- }
+ /** Construct a ServletContextAttributeEvent from the given context for the
+ ** given attribute name and attribute value.
+ */
+ public ServletContextAttributeEvent(ServletContext source, String name, Object value) {
+ super(source);
+ this.name = name;
+ this.value = value;
+ }
+
+ /**
+ * Return the name of the attribute that changed on the ServletContext.
+ *
+ */
+ public String getName() {
+ return this.name;
+ }
+
+ /**
+ * Returns the value of the attribute that has been added, removed, or replaced.
+ * If the attribute was added, this is the value of the attribute. If the attribute was
+ * removed, this is the value of the removed attribute. If the attribute was replaced, this
+ * is the old value of the attribute.
+ *
+ */
+
+ public Object getValue() {
+ return this.value;
+ }
}
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextAttributeListener.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextAttributeListener.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextAttributeListener.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,55 +1,37 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.util.EventListener;
-/**
- * Implementations of this interface receive notifications of * changes to the
- * attribute list on the servlet context of a web application. To receive
- * notification events, the implementation class must be configured in the
- * deployment descriptor for the web application.
- *
- * @see ServletContextAttributeEvent
- * @since v 2.3
- */
+ /** Implementations of this interface receive notifications of
+ ** changes to the attribute list on the servlet context of a web application.
+ * To receive notification events, the implementation class
+ * must be configured in the deployment descriptor for the web application.
+ * @see ServletContextAttributeEvent
+ * @since v 2.3
+ */
-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 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);
+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 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);
}
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextEvent.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextEvent.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextEvent.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,56 +1,47 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
-/**
- * This is the event class for notifications about changes to the servlet
- * context of a web application.
- *
- * @see ServletContextListener
- * @since v 2.3
- */
-public class ServletContextEvent extends java.util.EventObject
-{
+ /**
+ * This is the event class for notifications about changes to
+ * the servlet context of a web application.
+ * @see ServletContextListener
+ * @since v 2.3
+ */
- /**
- * Construct a ServletContextEvent from the given context.
- *
- * @param source -
- * the ServletContext that is sending the event.
- */
- public ServletContextEvent(ServletContext source)
- {
- super(source);
- }
+public class ServletContextEvent extends java.util.EventObject {
- /**
- * Return the ServletContext that changed.
- *
- * @return the ServletContext that sent the event.
- */
- public ServletContext getServletContext()
- {
- return (ServletContext) super.getSource();
- }
-
+ /** Construct a ServletContextEvent from the given context.
+ *
+ * @param source - the ServletContext that is sending the event.
+ */
+ public ServletContextEvent(ServletContext source) {
+ super(source);
+ }
+
+ /**
+ * Return the ServletContext that changed.
+ *
+ * @return the ServletContext that sent the event.
+ */
+ public ServletContext getServletContext () {
+ return (ServletContext) super.getSource();
+ }
+
}
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextListener.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextListener.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletContextListener.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,53 +1,51 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.util.EventListener;
-/**
- * Implementations of this interface receive notifications about changes to the
- * servlet context of the web application they are part of. To receive
- * notification events, the implementation class must be configured in the
- * deployment descriptor for the web application.
- *
- * @see ServletContextEvent
- * @since v 2.3
- */
+ /**
+ * Implementations of this interface receive notifications about
+ * changes to the servlet context of the web application they are
+ * part of.
+ * To receive notification events, the implementation class
+ * must be configured in the deployment descriptor for the web
+ * application.
+ * @see ServletContextEvent
+ * @since v 2.3
+ */
-public interface ServletContextListener extends EventListener
-{
- /**
- * * Notification that the web application initialization * process is
- * starting. * All ServletContextListeners are notified of context *
- * initialization before any filter or servlet in the web * application is
- * initialized.
- */
+public interface ServletContextListener extends EventListener {
+ /**
+ ** Notification that the web application initialization
+ ** process is starting.
+ ** All ServletContextListeners are notified of context
+ ** initialization before any filter or servlet in the web
+ ** application is initialized.
+ */
- public void contextInitialized(ServletContextEvent sce);
+ public void contextInitialized ( ServletContextEvent sce );
- /**
- * * Notification that the servlet context is about to be shut down. * All
- * servlets and filters have been destroy()ed before any *
- * ServletContextListeners are notified of context * destruction.
- */
- public void contextDestroyed(ServletContextEvent sce);
+ /**
+ ** Notification that the servlet context is about to be shut down.
+ ** All servlets and filters have been destroy()ed before any
+ ** ServletContextListeners are notified of context
+ ** destruction.
+ */
+ public void contextDestroyed ( ServletContextEvent sce );
}
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletException.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletException.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletException.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,112 +1,98 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
+
/**
- * Defines a general exception a servlet can throw when it encounters
- * difficulty.
- *
- * @author Various
+ * Defines a general exception a servlet can throw when it
+ * encounters difficulty.
+ *
+ * @author Various
+ * @version $Version$
*/
+public class ServletException extends Exception {
-public class ServletException extends Exception
-{
+ /**
+ * Constructs a new servlet exception.
+ */
+ public ServletException() {
+ super();
+ }
- private Throwable rootCause;
+ /**
+ * Constructs a new servlet exception with the
+ * specified message. The message can be written
+ * to the server log and/or displayed for the user.
+ *
+ * @param message a <code>String</code>
+ * specifying the text of
+ * the exception message
+ */
+ public ServletException(String message) {
+ super(message);
+ }
- /**
- * Constructs a new servlet exception.
- */
+ /**
+ * Constructs a new servlet exception when the servlet
+ * needs to throw an exception and include a message
+ * about the "root cause" exception that interfered with its
+ * normal operation, including a description message.
+ *
+ * @param message a <code>String</code> containing
+ * the text of the exception message
+ *
+ * @param rootCause the <code>Throwable</code> exception
+ * that interfered with the servlet's
+ * normal operation, making this servlet
+ * exception necessary
+ */
+ public ServletException(String message, Throwable rootCause) {
+ super(message, rootCause);
+ }
- public ServletException()
- {
- super();
- }
+ /**
+ * Constructs a new servlet exception when the servlet
+ * needs to throw an exception and include a message
+ * about the "root cause" exception that interfered with its
+ * normal operation. The exception's message is based on the localized
+ * message of the underlying exception.
+ *
+ * <p>This method calls the <code>getLocalizedMessage</code> method
+ * on the <code>Throwable</code> exception to get a localized exception
+ * message. When subclassing <code>ServletException</code>,
+ * this method can be overridden to create an exception message
+ * designed for a specific locale.
+ *
+ * @param rootCause the <code>Throwable</code> exception
+ * that interfered with the servlet's
+ * normal operation, making the servlet exception
+ * necessary
+ */
+ public ServletException(Throwable rootCause) {
+ super(rootCause);
+ }
- /**
- * Constructs a new servlet exception with the specified message. The message
- * can be written to the server log and/or displayed for the user.
- *
- * @param message
- * a <code>String</code> specifying the text of the exception
- * message
- */
-
- public ServletException(String message)
- {
- super(message);
- }
-
- /**
- * Constructs a new servlet exception when the servlet needs to throw an
- * exception and include a message about the "root cause" exception that
- * interfered with its normal operation, including a description message.
- *
- * @param message
- * a <code>String</code> containing the text of the exception
- * message
- * @param rootCause
- * the <code>Throwable</code> exception that interfered with the
- * servlet's normal operation, making this servlet exception
- * necessary
- */
-
- public ServletException(String message, Throwable rootCause)
- {
- super(message, rootCause);
- this.rootCause = rootCause;
- }
-
- /**
- * Constructs a new servlet exception when the servlet needs to throw an
- * exception and include a message about the "root cause" exception that
- * interfered with its normal operation. The exception's message is based on
- * the localized message of the underlying exception.
- * <p>
- * This method calls the <code>getLocalizedMessage</code> method on the
- * <code>Throwable</code> exception to get a localized exception message.
- * When subclassing <code>ServletException</code>, this method can be
- * overridden to create an exception message designed for a specific locale.
- *
- * @param rootCause
- * the <code>Throwable</code> exception that interfered with the
- * servlet's normal operation, making the servlet exception
- * necessary
- */
-
- public ServletException(Throwable rootCause)
- {
- super(rootCause);
- this.rootCause = rootCause;
- }
-
- /**
- * Returns the exception that caused this servlet exception.
- *
- * @return the <code>Throwable</code> that caused this servlet exception
- */
-
- public Throwable getRootCause()
- {
- return rootCause;
- }
+ /**
+ * Returns the exception that caused this servlet exception.
+ *
+ * @return the <code>Throwable</code>
+ * that caused this servlet exception
+ */
+ public Throwable getRootCause() {
+ return getCause();
+ }
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletInputStream.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletInputStream.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletInputStream.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,97 +1,106 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.io.InputStream;
import java.io.IOException;
/**
- * Provides an input stream for reading binary data from a client request,
- * including an efficient <code>readLine</code> method for reading data one
- * line at a time. With some protocols, such as HTTP POST and PUT, a
- * <code>ServletInputStream</code> object can be used to read data sent from
- * the client.
- * <p>
- * A <code>ServletInputStream</code> object is normally retrieved via the
- * {@link ServletRequest#getInputStream} method.
- * <p>
- * This is an abstract class that a servlet container implements. Subclasses of
- * this class must implement the <code>java.io.InputStream.read()</code>
- * method.
*
- * @author Various
- * @see ServletRequest
+ * Provides an input stream for reading binary data from a client
+ * request, including an efficient <code>readLine</code> method
+ * for reading data one line at a time. With some protocols, such
+ * as HTTP POST and PUT, a <code>ServletInputStream</code>
+ * object can be used to read data sent from the client.
+ *
+ * <p>A <code>ServletInputStream</code> object is normally retrieved via
+ * the {@link ServletRequest#getInputStream} method.
+ *
+ *
+ * <p>This is an abstract class that a servlet container implements.
+ * Subclasses of this class
+ * must implement the <code>java.io.InputStream.read()</code> method.
+ *
+ *
+ * @author Various
+ * @version $Version$
+ *
+ * @see ServletRequest
+ *
*/
-public abstract class ServletInputStream extends InputStream
-{
+public abstract class ServletInputStream extends InputStream {
- /**
- * Does nothing, because this is an abstract class.
- */
- protected ServletInputStream()
- {
- }
- /**
- * Reads the input stream, one line at a time. Starting at an offset, reads
- * bytes into an array, until it reads a certain number of bytes or reaches a
- * newline character, which it reads into the array as well.
- * <p>
- * This method returns -1 if it reaches the end of the input stream before
- * reading the maximum number of bytes.
- *
- * @param b
- * an array of bytes into which data is read
- * @param off
- * an integer specifying the character at which this method begins
- * reading
- * @param len
- * an integer specifying the maximum number of bytes to read
- * @return an integer specifying the actual number of bytes read, or -1 if
- * the end of the stream is reached
- * @exception IOException
- * if an input or output exception has occurred
- */
+ /**
+ * Does nothing, because this is an abstract class.
+ *
+ */
- public int readLine(byte[] b, int off, int len) throws IOException
- {
+ protected ServletInputStream() { }
- if (len <= 0)
- {
- return 0;
- }
- int count = 0, c;
+
+
+
+ /**
+ *
+ * Reads the input stream, one line at a time. Starting at an
+ * offset, reads bytes into an array, until it reads a certain number
+ * of bytes or reaches a newline character, which it reads into the
+ * array as well.
+ *
+ * <p>This method returns -1 if it reaches the end of the input
+ * stream before reading the maximum number of bytes.
+ *
+ *
+ *
+ * @param b an array of bytes into which data is read
+ *
+ * @param off an integer specifying the character at which
+ * this method begins reading
+ *
+ * @param len an integer specifying the maximum number of
+ * bytes to read
+ *
+ * @return an integer specifying the actual number of bytes
+ * read, or -1 if the end of the stream is reached
+ *
+ * @exception IOException if an input or output exception has occurred
+ *
+ */
+
+ public int readLine(byte[] b, int off, int len) throws IOException {
- while ((c = read()) != -1)
- {
- b[off++] = (byte) c;
- count++;
- if (c == '\n' || count == len)
- {
- break;
- }
- }
- return count > 0 ? count : -1;
- }
+ if (len <= 0) {
+ return 0;
+ }
+ int count = 0, c;
+
+ while ((c = read()) != -1) {
+ b[off++] = (byte)c;
+ count++;
+ if (c == '\n' || count == len) {
+ break;
+ }
+ }
+ return count > 0 ? count : -1;
+ }
}
+
+
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletOutputStream.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletOutputStream.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletOutputStream.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,24 +1,19 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.io.OutputStream;
@@ -28,290 +23,342 @@
import java.util.ResourceBundle;
/**
- * Provides an output stream for sending binary data to the client. A
- * <code>ServletOutputStream</code> object is normally retrieved via the
- * {@link ServletResponse#getOutputStream} method.
- * <p>
- * This is an abstract class that the servlet container implements. Subclasses
- * of this class must implement the <code>java.io.OutputStream.write(int)</code>
+ * Provides an output stream for sending binary data to the
+ * client. A <code>ServletOutputStream</code> object is normally retrieved
+ * via the {@link ServletResponse#getOutputStream} method.
+ *
+ * <p>This is an abstract class that the servlet container implements.
+ * Subclasses of this class
+ * must implement the <code>java.io.OutputStream.write(int)</code>
* method.
+ *
*
- * @author Various
- * @see ServletResponse
+ * @author Various
+ * @version $Version$
+ *
+ * @see ServletResponse
+ *
*/
-public abstract class ServletOutputStream extends OutputStream
-{
+public abstract class ServletOutputStream extends OutputStream {
- private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
+ private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
+ private static ResourceBundle lStrings =
+ ResourceBundle.getBundle(LSTRING_FILE);
- private static ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE);
- /**
- * Does nothing, because this is an abstract class.
- */
+
+ /**
+ *
+ * Does nothing, because this is an abstract class.
+ *
+ */
- protected ServletOutputStream()
- {
- }
+ protected ServletOutputStream() { }
- /**
- * Writes a <code>String</code> to the client, without a carriage
- * return-line feed (CRLF) character at the end.
- *
- * @param s
- * the <code>String</code> to send to the client
- * @exception IOException
- * if an input or output exception occurred
- */
- public void print(String s) throws IOException
- {
- if (s == null)
- s = "null";
- int len = s.length();
- for (int i = 0; i < len; i++)
- {
- char c = s.charAt(i);
+ /**
+ * Writes a <code>String</code> to the client,
+ * without a carriage return-line feed (CRLF)
+ * character at the end.
+ *
+ *
+ * @param s the <code>String</code> to send to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
- //
- // XXX NOTE: This is clearly incorrect for many strings,
- // but is the only consistent approach within the current
- // servlet framework. It must suffice until servlet output
- // streams properly encode their output.
- //
- if ((c & 0xff00) != 0)
- { // high order byte must be zero
- String errMsg = lStrings.getString("err.not_iso8859_1");
- Object[] errArgs = new Object[1];
- errArgs[0] = new Character(c);
- errMsg = MessageFormat.format(errMsg, errArgs);
- throw new CharConversionException(errMsg);
- }
- write(c);
- }
- }
+ public void print(String s) throws IOException {
+ if (s==null) s="null";
+ int len = s.length();
+ for (int i = 0; i < len; i++) {
+ char c = s.charAt (i);
- /**
- * Writes a <code>boolean</code> value to the client, with no carriage
- * return-line feed (CRLF) character at the end.
- *
- * @param b
- * the <code>boolean</code> value to send to the client
- * @exception IOException
- * if an input or output exception occurred
- */
+ //
+ // XXX NOTE: This is clearly incorrect for many strings,
+ // but is the only consistent approach within the current
+ // servlet framework. It must suffice until servlet output
+ // streams properly encode their output.
+ //
+ if ((c & 0xff00) != 0) { // high order byte must be zero
+ String errMsg = lStrings.getString("err.not_iso8859_1");
+ Object[] errArgs = new Object[1];
+ errArgs[0] = new Character(c);
+ errMsg = MessageFormat.format(errMsg, errArgs);
+ throw new CharConversionException(errMsg);
+ }
+ write (c);
+ }
+ }
- public void print(boolean b) throws IOException
- {
- String msg;
- if (b)
- {
- msg = lStrings.getString("value.true");
- }
- else
- {
- msg = lStrings.getString("value.false");
- }
- print(msg);
- }
- /**
- * Writes a character to the client, with no carriage return-line feed (CRLF)
- * at the end.
- *
- * @param c
- * the character to send to the client
- * @exception IOException
- * if an input or output exception occurred
- */
- public void print(char c) throws IOException
- {
- print(String.valueOf(c));
- }
+ /**
+ * Writes a <code>boolean</code> value to the client,
+ * with no carriage return-line feed (CRLF)
+ * character at the end.
+ *
+ * @param b the <code>boolean</code> value
+ * to send to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
- /**
- * Writes an int to the client, with no carriage return-line feed (CRLF) at
- * the end.
- *
- * @param i
- * the int to send to the client
- * @exception IOException
- * if an input or output exception occurred
- */
+ public void print(boolean b) throws IOException {
+ String msg;
+ if (b) {
+ msg = lStrings.getString("value.true");
+ } else {
+ msg = lStrings.getString("value.false");
+ }
+ print(msg);
+ }
- public void print(int i) throws IOException
- {
- print(String.valueOf(i));
- }
- /**
- * Writes a <code>long</code> value to the client, with no carriage
- * return-line feed (CRLF) at the end.
- *
- * @param l
- * the <code>long</code> value to send to the client
- * @exception IOException
- * if an input or output exception occurred
- */
- public void print(long l) throws IOException
- {
- print(String.valueOf(l));
- }
+ /**
+ * Writes a character to the client,
+ * with no carriage return-line feed (CRLF)
+ * at the end.
+ *
+ * @param c the character to send to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
- /**
- * Writes a <code>float</code> value to the client, with no carriage
- * return-line feed (CRLF) at the end.
- *
- * @param f
- * the <code>float</code> value to send to the client
- * @exception IOException
- * if an input or output exception occurred
- */
+ public void print(char c) throws IOException {
+ print(String.valueOf(c));
+ }
- public void print(float f) throws IOException
- {
- print(String.valueOf(f));
- }
- /**
- * Writes a <code>double</code> value to the client, with no carriage
- * return-line feed (CRLF) at the end.
- *
- * @param d
- * the <code>double</code> value to send to the client
- * @exception IOException
- * if an input or output exception occurred
- */
- public void print(double d) throws IOException
- {
- print(String.valueOf(d));
- }
- /**
- * Writes a carriage return-line feed (CRLF) to the client.
- *
- * @exception IOException
- * if an input or output exception occurred
- */
+ /**
+ *
+ * Writes an int to the client,
+ * with no carriage return-line feed (CRLF)
+ * at the end.
+ *
+ * @param i the int to send to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
- public void println() throws IOException
- {
- print("\r\n");
- }
+ public void print(int i) throws IOException {
+ print(String.valueOf(i));
+ }
- /**
- * Writes a <code>String</code> to the client, followed by a carriage
- * return-line feed (CRLF).
- *
- * @param s
- * the <code>String</code> to write to the client
- * @exception IOException
- * if an input or output exception occurred
- */
- public void println(String s) throws IOException
- {
- print(s);
- println();
- }
- /**
- * Writes a <code>boolean</code> value to the client, followed by a
- * carriage return-line feed (CRLF).
- *
- * @param b
- * the <code>boolean</code> value to write to the client
- * @exception IOException
- * if an input or output exception occurred
- */
+
+ /**
+ *
+ * Writes a <code>long</code> value to the client,
+ * with no carriage return-line feed (CRLF) at the end.
+ *
+ * @param l the <code>long</code> value
+ * to send to the client
+ *
+ * @exception IOException if an input or output exception
+ * occurred
+ *
+ */
- public void println(boolean b) throws IOException
- {
- print(b);
- println();
- }
+ public void print(long l) throws IOException {
+ print(String.valueOf(l));
+ }
- /**
- * Writes a character to the client, followed by a carriage return-line feed
- * (CRLF).
- *
- * @param c
- * the character to write to the client
- * @exception IOException
- * if an input or output exception occurred
- */
- public void println(char c) throws IOException
- {
- print(c);
- println();
- }
- /**
- * Writes an int to the client, followed by a carriage return-line feed
- * (CRLF) character.
- *
- * @param i
- * the int to write to the client
- * @exception IOException
- * if an input or output exception occurred
- */
+ /**
+ *
+ * Writes a <code>float</code> value to the client,
+ * with no carriage return-line feed (CRLF) at the end.
+ *
+ * @param f the <code>float</code> value
+ * to send to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ *
+ */
- public void println(int i) throws IOException
- {
- print(i);
- println();
- }
+ public void print(float f) throws IOException {
+ print(String.valueOf(f));
+ }
- /**
- * Writes a <code>long</code> value to the client, followed by a carriage
- * return-line feed (CRLF).
- *
- * @param l
- * the <code>long</code> value to write to the client
- * @exception IOException
- * if an input or output exception occurred
- */
- public void println(long l) throws IOException
- {
- print(l);
- println();
- }
- /**
- * Writes a <code>float</code> value to the client, followed by a carriage
- * return-line feed (CRLF).
- *
- * @param f
- * the <code>float</code> value to write to the client
- * @exception IOException
- * if an input or output exception occurred
- */
+ /**
+ *
+ * Writes a <code>double</code> value to the client,
+ * with no carriage return-line feed (CRLF) at the end.
+ *
+ * @param d the <code>double</code> value
+ * to send to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
- public void println(float f) throws IOException
- {
- print(f);
- println();
- }
+ public void print(double d) throws IOException {
+ print(String.valueOf(d));
+ }
- /**
- * Writes a <code>double</code> value to the client, followed by a carriage
- * return-line feed (CRLF).
- *
- * @param d
- * the <code>double</code> value to write to the client
- * @exception IOException
- * if an input or output exception occurred
- */
- public void println(double d) throws IOException
- {
- print(d);
- println();
- }
+
+ /**
+ * Writes a carriage return-line feed (CRLF)
+ * to the client.
+ *
+ *
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println() throws IOException {
+ print("\r\n");
+ }
+
+
+
+ /**
+ * Writes a <code>String</code> to the client,
+ * followed by a carriage return-line feed (CRLF).
+ *
+ *
+ * @param s the <code>String</code> to write to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println(String s) throws IOException {
+ print(s);
+ println();
+ }
+
+
+
+
+ /**
+ *
+ * Writes a <code>boolean</code> value to the client,
+ * followed by a
+ * carriage return-line feed (CRLF).
+ *
+ *
+ * @param b the <code>boolean</code> value
+ * to write to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println(boolean b) throws IOException {
+ print(b);
+ println();
+ }
+
+
+
+ /**
+ *
+ * Writes a character to the client, followed by a carriage
+ * return-line feed (CRLF).
+ *
+ * @param c the character to write to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println(char c) throws IOException {
+ print(c);
+ println();
+ }
+
+
+
+ /**
+ *
+ * Writes an int to the client, followed by a
+ * carriage return-line feed (CRLF) character.
+ *
+ *
+ * @param i the int to write to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println(int i) throws IOException {
+ print(i);
+ println();
+ }
+
+
+
+ /**
+ *
+ * Writes a <code>long</code> value to the client, followed by a
+ * carriage return-line feed (CRLF).
+ *
+ *
+ * @param l the <code>long</code> value to write to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println(long l) throws IOException {
+ print(l);
+ println();
+ }
+
+
+
+ /**
+ *
+ * Writes a <code>float</code> value to the client,
+ * followed by a carriage return-line feed (CRLF).
+ *
+ * @param f the <code>float</code> value
+ * to write to the client
+ *
+ *
+ * @exception IOException if an input or output exception
+ * occurred
+ *
+ */
+
+ public void println(float f) throws IOException {
+ print(f);
+ println();
+ }
+
+
+
+ /**
+ *
+ * Writes a <code>double</code> value to the client,
+ * followed by a carriage return-line feed (CRLF).
+ *
+ *
+ * @param d the <code>double</code> value
+ * to write to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println(double d) throws IOException {
+ print(d);
+ println();
+ }
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequest.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequest.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequest.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,24 +1,19 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.io.BufferedReader;
@@ -27,431 +22,577 @@
import java.util.Locale;
import java.util.Map;
+
+
/**
- * Defines an object to provide client request information to a servlet. The
+ * Defines an object to provide client request information to a servlet. The
* servlet container creates a <code>ServletRequest</code> object and passes
* it as an argument to the servlet's <code>service</code> method.
- * <p>
- * A <code>ServletRequest</code> object provides data including parameter name
- * and values, attributes, and an input stream. Interfaces that extend
- * <code>ServletRequest</code> can provide additional protocol-specific data
- * (for example, HTTP data is provided by
- * {@link javax.servlet.http.HttpServletRequest}.
+ *
+ * <p>A <code>ServletRequest</code> object provides data including
+ * parameter name and values, attributes, and an input stream.
+ * Interfaces that extend <code>ServletRequest</code> can provide
+ * additional protocol-specific data (for example, HTTP data is
+ * provided by {@link javax.servlet.http.HttpServletRequest}.
*
- * @author Various
- * @see javax.servlet.http.HttpServletRequest
+ * @author Various
+ * @version $Version$
+ *
+ * @see javax.servlet.http.HttpServletRequest
+ *
*/
-public interface ServletRequest
-{
+public interface ServletRequest {
- /**
- * Returns the value of the named attribute as an <code>Object</code>, or
- * <code>null</code> if no attribute of the given name exists.
- * <p>
- * Attributes can be set two ways. The servlet container may set attributes
- * to make available custom information about a request. For example, for
- * requests made using HTTPS, the attribute
- * <code>javax.servlet.request.X509Certificate</code> can be used to
- * retrieve information on the certificate of the client. Attributes can also
- * be set programatically using {@link ServletRequest#setAttribute}. This
- * allows information to be embedded into a request before a
- * {@link RequestDispatcher} call.
- * <p>
- * Attribute names should follow the same conventions as package names. This
- * specification reserves names matching <code>java.*</code>,
- * <code>javax.*</code>, and <code>sun.*</code>.
- *
- * @param name
- * a <code>String</code> specifying the name of the attribute
- * @return an <code>Object</code> containing the value of the attribute, or
- * <code>null</code> if the attribute does not exist
- */
- public Object getAttribute(String name);
- /**
- * Returns an <code>Enumeration</code> containing the names of the
- * attributes available to this request. This method returns an empty
- * <code>Enumeration</code> if the request has no attributes available to
- * it.
- *
- * @return an <code>Enumeration</code> of strings containing the names of
- * the request's attributes
- */
- public Enumeration getAttributeNames();
+ /**
+ *
+ * Returns the value of the named attribute as an <code>Object</code>,
+ * or <code>null</code> if no attribute of the given name exists.
+ *
+ * <p> Attributes can be set two ways. The servlet container may set
+ * attributes to make available custom information about a request.
+ * For example, for requests made using HTTPS, the attribute
+ * <code>javax.servlet.request.X509Certificate</code> can be used to
+ * retrieve information on the certificate of the client. Attributes
+ * can also be set programatically using
+ * {@link ServletRequest#setAttribute}. This allows information to be
+ * embedded into a request before a {@link RequestDispatcher} call.
+ *
+ * <p>Attribute names should follow the same conventions as package
+ * names. This specification reserves names matching <code>java.*</code>,
+ * <code>javax.*</code>, and <code>sun.*</code>.
+ *
+ * @param name a <code>String</code> specifying the name of
+ * the attribute
+ *
+ * @return an <code>Object</code> containing the value
+ * of the attribute, or <code>null</code> if
+ * the attribute does not exist
+ *
+ */
- /**
- * Returns the name of the character encoding used in the body of this
- * request. This method returns <code>null</code> if the request does not
- * specify a character encoding
- *
- * @return a <code>String</code> containing the name of the character
- * encoding, or <code>null</code> if the request does not specify a
- * character encoding
- */
+ public Object getAttribute(String name);
+
+
- public String getCharacterEncoding();
+ /**
+ * Returns an <code>Enumeration</code> containing the
+ * names of the attributes available to this request.
+ * This method returns an empty <code>Enumeration</code>
+ * if the request has no attributes available to it.
+ *
+ *
+ * @return an <code>Enumeration</code> of strings
+ * containing the names
+ * of the request's attributes
+ *
+ */
- /**
- * Overrides the name of the character encoding used in the body of this
- * request. This method must be called prior to reading request parameters or
- * reading input using getReader(). Otherwise, it has no effect.
- *
- * @param env
- * <code>String</code> containing the name of the character
- * encoding.
- * @throws java.io.UnsupportedEncodingException
- * if this ServletRequest is still in a state where a character
- * encoding may be set, but the specified encoding is invalid
- */
- public void setCharacterEncoding(String env) throws java.io.UnsupportedEncodingException;
+ public Enumeration getAttributeNames();
+
+
+
+
+ /**
+ * Returns the name of the character encoding used in the body of this
+ * request. This method returns <code>null</code> if the request
+ * does not specify a character encoding
+ *
+ *
+ * @return a <code>String</code> containing the name of
+ * the character encoding, or <code>null</code>
+ * if the request does not specify a character encoding
+ *
+ */
- /**
- * Returns the length, in bytes, of the request body and made available by
- * the input stream, or -1 if the length is not known. For HTTP servlets,
- * same as the value of the CGI variable CONTENT_LENGTH.
- *
- * @return an integer containing the length of the request body or -1 if the
- * length is not known
- */
+ public String getCharacterEncoding();
- public int getContentLength();
+ /**
+ * Overrides the name of the character encoding used in the body of this
+ * request. This method must be called prior to reading request parameters
+ * or reading input using getReader().
+ *
+ *
+ * @param env a <code>String</code> containing the name of
+ * the character encoding.
+ * @throws java.io.UnsupportedEncodingException if this is not a valid encoding
+ */
- /**
- * Returns the MIME type of the body of the request, or <code>null</code>
- * if the type is not known. For HTTP servlets, same as the value of the CGI
- * variable CONTENT_TYPE.
- *
- * @return a <code>String</code> containing the name of the MIME type of
- * the request, or null if the type is not known
- */
+ public void setCharacterEncoding(String env) throws java.io.UnsupportedEncodingException;
- public String getContentType();
+
+
+
+
+ /**
+ * Returns the length, in bytes, of the request body
+ * and made available by the input stream, or -1 if the
+ * length is not known. For HTTP servlets, same as the value
+ * of the CGI variable CONTENT_LENGTH.
+ *
+ * @return an integer containing the length of the
+ * request body or -1 if the length is not known
+ *
+ */
- /**
- * Retrieves the body of the request as binary data using a
- * {@link ServletInputStream}. Either this method or {@link #getReader} may
- * be called to read the body, not both.
- *
- * @return a {@link ServletInputStream} object containing the body of the
- * request
- * @exception IllegalStateException
- * if the {@link #getReader} method has already been called for
- * this request
- * @exception IOException
- * if an input or output exception occurred
- */
+ public int getContentLength();
+
+
+
- public ServletInputStream getInputStream() throws IOException;
+ /**
+ * Returns the MIME type of the body of the request, or
+ * <code>null</code> if the type is not known. For HTTP servlets,
+ * same as the value of the CGI variable CONTENT_TYPE.
+ *
+ * @return a <code>String</code> containing the name
+ * of the MIME type of
+ * the request, or null if the type is not known
+ *
+ */
- /**
- * Returns the value of a request parameter as a <code>String</code>, or
- * <code>null</code> if the parameter does not exist. Request parameters
- * are extra information sent with the request. For HTTP servlets, parameters
- * are contained in the query string or posted form data.
- * <p>
- * You should only use this method when you are sure the parameter has only
- * one value. If the parameter might have more than one value, use
- * {@link #getParameterValues}.
- * <p>
- * If you use this method with a multivalued parameter, the value returned is
- * equal to the first value in the array returned by
- * <code>getParameterValues</code>.
- * <p>
- * If the parameter data was sent in the request body, such as occurs with an
- * HTTP POST request, then reading the body directly via {@link
- * #getInputStream} or {@link #getReader} can interfere with the execution of
- * this method.
- *
- * @param name
- * a <code>String</code> specifying the name of the parameter
- * @return a <code>String</code> representing the single value of the
- * parameter
- * @see #getParameterValues
- */
+ public String getContentType();
+
+
+
- public String getParameter(String name);
+ /**
+ * Retrieves the body of the request as binary data using
+ * a {@link ServletInputStream}. Either this method or
+ * {@link #getReader} may be called to read the body, not both.
+ *
+ * @return a {@link ServletInputStream} object containing
+ * the body of the request
+ *
+ * @exception IllegalStateException if the {@link #getReader} method
+ * has already been called for this request
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
- /**
- * Returns an <code>Enumeration</code> of <code>String</code> objects
- * containing the names of the parameters contained in this request. If the
- * request has no parameters, the method returns an empty
- * <code>Enumeration</code>.
- *
- * @return an <code>Enumeration</code> of <code>String</code> objects,
- * each <code>String</code> containing the name of a request
- * parameter; or an empty <code>Enumeration</code> if the request
- * has no parameters
- */
+ public ServletInputStream getInputStream() throws IOException;
+
+
+
- public Enumeration getParameterNames();
+ /**
+ * Returns the value of a request parameter as a <code>String</code>,
+ * or <code>null</code> if the parameter does not exist. Request parameters
+ * are extra information sent with the request. For HTTP servlets,
+ * parameters are contained in the query string or posted form data.
+ *
+ * <p>You should only use this method when you are sure the
+ * parameter has only one value. If the parameter might have
+ * more than one value, use {@link #getParameterValues}.
+ *
+ * <p>If you use this method with a multivalued
+ * parameter, the value returned is equal to the first value
+ * in the array returned by <code>getParameterValues</code>.
+ *
+ * <p>If the parameter data was sent in the request body, such as occurs
+ * with an HTTP POST request, then reading the body directly via {@link
+ * #getInputStream} or {@link #getReader} can interfere
+ * with the execution of this method.
+ *
+ * @param name a <code>String</code> specifying the
+ * name of the parameter
+ *
+ * @return a <code>String</code> representing the
+ * single value of the parameter
+ *
+ * @see #getParameterValues
+ *
+ */
- /**
- * Returns an array of <code>String</code> objects containing all of the
- * values the given request parameter has, or <code>null</code> if the
- * parameter does not exist.
- * <p>
- * If the parameter has a single value, the array has a length of 1.
- *
- * @param name
- * a <code>String</code> containing the name of the parameter
- * whose value is requested
- * @return an array of <code>String</code> objects containing the
- * parameter's values
- * @see #getParameter
- */
+ public String getParameter(String name);
+
+
+
- public String[] getParameterValues(String name);
+ /**
+ *
+ * Returns an <code>Enumeration</code> of <code>String</code>
+ * objects containing the names of the parameters contained
+ * in this request. If the request has
+ * no parameters, the method returns an
+ * empty <code>Enumeration</code>.
+ *
+ * @return an <code>Enumeration</code> of <code>String</code>
+ * objects, each <code>String</code> containing
+ * the name of a request parameter; or an
+ * empty <code>Enumeration</code> if the
+ * request has no parameters
+ *
+ */
+
+ public Enumeration getParameterNames();
+
+
+
- /**
- * Returns a java.util.Map of the parameters of this request. Request
- * parameters are extra information sent with the request. For HTTP servlets,
- * parameters are contained in the query string or posted form data.
- *
- * @return an immutable java.util.Map containing parameter names as keys and
- * parameter values as map values. The keys in the parameter map are
- * of type String. The values in the parameter map are of type String
- * array.
- */
+ /**
+ * Returns an array of <code>String</code> objects containing
+ * all of the values the given request parameter has, or
+ * <code>null</code> if the parameter does not exist.
+ *
+ * <p>If the parameter has a single value, the array has a length
+ * of 1.
+ *
+ * @param name a <code>String</code> containing the name of
+ * the parameter whose value is requested
+ *
+ * @return an array of <code>String</code> objects
+ * containing the parameter's values
+ *
+ * @see #getParameter
+ *
+ */
- public Map getParameterMap();
+ public String[] getParameterValues(String name);
+
+ /** Returns a java.util.Map of the parameters of this request.
+ * Request parameters
+ * are extra information sent with the request. For HTTP servlets,
+ * parameters are contained in the query string or posted form data.
+ *
+ * @return an immutable java.util.Map containing parameter names as
+ * keys and parameter values as map values. The keys in the parameter
+ * map are of type String. The values in the parameter map are of type
+ * String array.
+ *
+ */
- /**
- * Returns the name and version of the protocol the request uses in the form
- * <i>protocol/majorVersion.minorVersion</i>, for example, HTTP/1.1. For
- * HTTP servlets, the value returned is the same as the value of the CGI
- * variable <code>SERVER_PROTOCOL</code>.
- *
- * @return a <code>String</code> containing the protocol name and version
- * number
- */
+ public Map getParameterMap();
+
+
- public String getProtocol();
+ /**
+ * Returns the name and version of the protocol the request uses
+ * in the form <i>protocol/majorVersion.minorVersion</i>, for
+ * example, HTTP/1.1. For HTTP servlets, the value
+ * returned is the same as the value of the CGI variable
+ * <code>SERVER_PROTOCOL</code>.
+ *
+ * @return a <code>String</code> containing the protocol
+ * name and version number
+ *
+ */
+
+ public String getProtocol();
+
+
+
- /**
- * Returns the name of the scheme used to make this request, for example,
- * <code>http</code>, <code>https</code>, or <code>ftp</code>.
- * Different schemes have different rules for constructing URLs, as noted in
- * RFC 1738.
- *
- * @return a <code>String</code> containing the name of the scheme used to
- * make this request
- */
+ /**
+ * Returns the name of the scheme used to make this request,
+ * for example,
+ * <code>http</code>, <code>https</code>, or <code>ftp</code>.
+ * Different schemes have different rules for constructing URLs,
+ * as noted in RFC 1738.
+ *
+ * @return a <code>String</code> containing the name
+ * of the scheme used to make this request
+ *
+ */
- public String getScheme();
+ public String getScheme();
+
+
+
- /**
- * 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 value,
- * if any, or the resolved server name, or the server IP address.
- *
- * @return a <code>String</code> containing the name of the server
- */
+ /**
+ * 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 value, if any, or the resolved server name, or the server IP address.
+ *
+ * @return a <code>String</code> containing the name
+ * of the server
+ */
- public String getServerName();
+ public String getServerName();
+
+
+
- /**
- * Returns the port number to which the request was sent. It is the value of
- * the part after ":" in the <code>Host</code> header value, if any, or the
- * server port where the client connection was accepted on.
- *
- * @return an integer specifying the port number
- */
+ /**
+ * Returns the port number to which the request was sent.
+ * It is the value of the part after ":" in the <code>Host</code>
+ * header value, if any, or the server port where the client connection
+ * was accepted on.
+ *
+ * @return an integer specifying the port number
+ *
+ */
- public int getServerPort();
+ public int getServerPort();
+
+
+
+ /**
+ * Retrieves the body of the request as character data using
+ * a <code>BufferedReader</code>. The reader translates the character
+ * data according to the character encoding used on the body.
+ * Either this method or {@link #getInputStream} may be called to read the
+ * body, not both.
+ *
+ *
+ * @return a <code>BufferedReader</code>
+ * containing the body of the request
+ *
+ * @exception UnsupportedEncodingException if the character set encoding
+ * used is not supported and the
+ * text cannot be decoded
+ *
+ * @exception IllegalStateException if {@link #getInputStream} method
+ * has been called on this request
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ * @see #getInputStream
+ *
+ */
- /**
- * Retrieves the body of the request as character data using a
- * <code>BufferedReader</code>. The reader translates the character data
- * according to the character encoding used on the body. Either this method
- * or {@link #getInputStream} may be called to read the body, not both.
- *
- * @return a <code>BufferedReader</code> containing the body of the request
- * @exception UnsupportedEncodingException
- * if the character set encoding used is not supported and the
- * text cannot be decoded
- * @exception IllegalStateException
- * if {@link #getInputStream} method has been called on this
- * request
- * @exception IOException
- * if an input or output exception occurred
- * @see #getInputStream
- */
+ public BufferedReader getReader() throws IOException;
+
+
+
- public BufferedReader getReader() throws IOException;
+ /**
+ * Returns the Internet Protocol (IP) address of the client
+ * 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
+ * IP address of the client that sent the request
+ *
+ */
+
+ public String getRemoteAddr();
+
+
+
- /**
- * Returns the Internet Protocol (IP) address of the client 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 IP address of the client
- * that sent the request
- */
+ /**
+ * 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
+ *
+ */
- public String getRemoteAddr();
+ public String getRemoteHost();
+
+
+
- /**
- * 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
- */
+ /**
+ *
+ * Stores an attribute in this request.
+ * Attributes are reset between requests. This method is most
+ * often used in conjunction with {@link RequestDispatcher}.
+ *
+ * <p>Attribute names should follow the same conventions as
+ * package names. Names beginning with <code>java.*</code>,
+ * <code>javax.*</code>, and <code>com.sun.*</code>, are
+ * reserved for use by Sun Microsystems.
+ *<br> If the object passed in is null, the effect is the same as
+ * calling {@link #removeAttribute}.
+ * <br> It is warned that when the request is dispatched from the
+ * servlet resides in a different web application by
+ * <code>RequestDispatcher</code>, the object set by this method
+ * may not be correctly retrieved in the caller servlet.
+ *
+ *
+ * @param name a <code>String</code> specifying
+ * the name of the attribute
+ *
+ * @param o the <code>Object</code> to be stored
+ *
+ */
- public String getRemoteHost();
+ public void setAttribute(String name, Object o);
+
+
+
- /**
- * Stores an attribute in this request. Attributes are reset between
- * requests. This method is most often used in conjunction with
- * {@link RequestDispatcher}.
- * <p>
- * Attribute names should follow the same conventions as package names. Names
- * beginning with <code>java.*</code>, <code>javax.*</code>, and
- * <code>com.sun.*</code>, are reserved for use by Sun Microsystems. <br>
- * If the object passed in is null, the effect is the same as calling
- * {@link #removeAttribute}. <br>
- * It is warned that when the request is dispatched from the servlet resides
- * in a different web application by <code>RequestDispatcher</code>, the
- * object set by this method may not be correctly retrieved in the caller
- * servlet.
- *
- * @param name
- * a <code>String</code> specifying the name of the attribute
- * @param o
- * the <code>Object</code> to be stored
- */
+ /**
+ *
+ * Removes an attribute from this request. This method is not
+ * generally needed as attributes only persist as long as the request
+ * is being handled.
+ *
+ * <p>Attribute names should follow the same conventions as
+ * package names. Names beginning with <code>java.*</code>,
+ * <code>javax.*</code>, and <code>com.sun.*</code>, are
+ * reserved for use by Sun Microsystems.
+ *
+ *
+ * @param name a <code>String</code> specifying
+ * the name of the attribute to remove
+ *
+ */
- public void setAttribute(String name, Object o);
+ public void removeAttribute(String name);
+
+
+
- /**
- * Removes an attribute from this request. This method is not generally
- * needed as attributes only persist as long as the request is being handled.
- * <p>
- * Attribute names should follow the same conventions as package names. Names
- * beginning with <code>java.*</code>, <code>javax.*</code>, and
- * <code>com.sun.*</code>, are reserved for use by Sun Microsystems.
- *
- * @param name
- * a <code>String</code> specifying the name of the attribute to
- * remove
- */
+ /**
+ *
+ * Returns the preferred <code>Locale</code> that the client will
+ * accept content in, based on the Accept-Language header.
+ * If the client request doesn't provide an Accept-Language header,
+ * this method returns the default locale for the server.
+ *
+ *
+ * @return the preferred <code>Locale</code> for the client
+ *
+ */
- public void removeAttribute(String name);
+ public Locale getLocale();
+
+
+
- /**
- * Returns the preferred <code>Locale</code> that the client will accept
- * content in, based on the Accept-Language header. If the client request
- * doesn't provide an Accept-Language header, this method returns the default
- * locale for the server.
- *
- * @return the preferred <code>Locale</code> for the client
- */
+ /**
+ *
+ * Returns an <code>Enumeration</code> of <code>Locale</code> objects
+ * indicating, in decreasing order starting with the preferred locale, the
+ * locales that are acceptable to the client based on the Accept-Language
+ * header.
+ * If the client request doesn't provide an Accept-Language header,
+ * this method returns an <code>Enumeration</code> containing one
+ * <code>Locale</code>, the default locale for the server.
+ *
+ *
+ * @return an <code>Enumeration</code> of preferred
+ * <code>Locale</code> objects for the client
+ *
+ */
- public Locale getLocale();
+ public Enumeration getLocales();
+
+
+
- /**
- * Returns an <code>Enumeration</code> of <code>Locale</code> objects
- * indicating, in decreasing order starting with the preferred locale, the
- * locales that are acceptable to the client based on the Accept-Language
- * header. If the client request doesn't provide an Accept-Language header,
- * this method returns an <code>Enumeration</code> containing one
- * <code>Locale</code>, the default locale for the server.
- *
- * @return an <code>Enumeration</code> of preferred <code>Locale</code>
- * objects for the client
- */
+ /**
+ *
+ * Returns a boolean indicating whether this request was made using a
+ * secure channel, such as HTTPS.
+ *
+ *
+ * @return a boolean indicating if the request was made using a
+ * secure channel
+ *
+ */
- public Enumeration getLocales();
+ public boolean isSecure();
+
+
+
- /**
- * Returns a boolean indicating whether this request was made using a secure
- * channel, such as HTTPS.
- *
- * @return a boolean indicating if the request was made using a secure
- * channel
- */
+ /**
+ *
+ * Returns a {@link RequestDispatcher} object that acts as a wrapper for
+ * the resource located at the given path.
+ * A <code>RequestDispatcher</code> object can be used to forward
+ * a request to the resource or to include the resource in a response.
+ * The resource can be dynamic or static.
+ *
+ * <p>The pathname specified may be relative, although it cannot extend
+ * outside the current servlet context. If the path begins with
+ * a "/" it is interpreted as relative to the current context root.
+ * This method returns <code>null</code> if the servlet container
+ * cannot return a <code>RequestDispatcher</code>.
+ *
+ * <p>The difference between this method and {@link
+ * ServletContext#getRequestDispatcher} is that this method can take a
+ * relative path.
+ *
+ * @param path a <code>String</code> specifying the pathname
+ * 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
+ * at the specified path, or <code>null</code>
+ * if the servlet container cannot return a
+ * <code>RequestDispatcher</code>
+ *
+ * @see RequestDispatcher
+ * @see ServletContext#getRequestDispatcher
+ *
+ */
- public boolean isSecure();
+ public RequestDispatcher getRequestDispatcher(String path);
+
+
+
- /**
- * Returns a {@link RequestDispatcher} object that acts as a wrapper for the
- * resource located at the given path. A <code>RequestDispatcher</code>
- * object can be used to forward a request to the resource or to include the
- * resource in a response. The resource can be dynamic or static.
- * <p>
- * The pathname specified may be relative, although it cannot extend outside
- * the current servlet context. If the path begins with a "/" it is
- * interpreted as relative to the current context root. This method returns
- * <code>null</code> if the servlet container cannot return a
- * <code>RequestDispatcher</code>.
- * <p>
- * The difference between this method and {@link
- * ServletContext#getRequestDispatcher} is that this method can take a
- * relative path.
- *
- * @param path
- * a <code>String</code> specifying the pathname 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 at the specified path, or <code>null</code> if
- * the servlet container cannot return a
- * <code>RequestDispatcher</code>
- * @see RequestDispatcher
- * @see ServletContext#getRequestDispatcher
- */
+ /**
+ *
+ * @deprecated As of Version 2.1 of the Java Servlet API,
+ * use {@link ServletContext#getRealPath} instead.
+ *
+ */
- public RequestDispatcher getRequestDispatcher(String path);
+ public String getRealPath(String path);
+
+
+ /**
+ * Returns the Internet Protocol (IP) source port of the client
+ * or last proxy that sent the request.
+ *
+ * @return an integer specifying the port number
+ *
+ * @since 2.4
+ */
+ public int getRemotePort();
- /**
- * @deprecated As of Version 2.1 of the Java Servlet API, use
- * {@link ServletContext#getRealPath} instead.
- */
- public String getRealPath(String path);
+ /**
+ * 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.
+ *
+ * @since 2.4
+ */
+ public String getLocalName();
- /**
- * Returns the Internet Protocol (IP) source port of the client or last proxy
- * that sent the request.
- *
- * @return an integer specifying the port number
- * @since 2.4
- */
- public int getRemotePort();
+ /**
+ * 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.
+ *
+ * @since 2.4
+ *
+ */
+ public String getLocalAddr();
- /**
- * 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.
- * @since 2.4
- */
- 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.
- * @since 2.4
- */
- public String getLocalAddr();
+ /**
+ * Returns the Internet Protocol (IP) port number of the interface
+ * on which the request was received.
+ *
+ * @return an integer specifying the port number
+ *
+ * @since 2.4
+ */
+ public int getLocalPort();
- /**
- * Returns the Internet Protocol (IP) port number of the interface on which
- * the request was received.
- *
- * @return an integer specifying the port number
- * @since 2.4
- */
- public int getLocalPort();
+}
-}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestAttributeEvent.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestAttributeEvent.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestAttributeEvent.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,81 +1,67 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
-/**
- * This is the event class for notifications of changes to the attributes of the
- * servlet request in an application.
- *
- * @see ServletRequestAttributeListener
- * @since Servlet 2.4
- */
-public class ServletRequestAttributeEvent extends ServletRequestEvent
-{
- private String name;
+ /**
+ * This is the event class for notifications of changes to the
+ * attributes of the servlet request in an application.
+ * @see ServletRequestAttributeListener
+ * @since Servlet 2.4
+ */
- private Object value;
+public class ServletRequestAttributeEvent extends ServletRequestEvent {
+ private String name;
+ private Object value;
- /**
- * Construct a ServletRequestAttributeEvent giving the servlet context of
- * this web application, the ServletRequest whose attributes are changing and
- * the name and value of the attribute.
- *
- * @param sc
- * the ServletContext that is sending the event.
- * @param request
- * the ServletRequest that is sending the event.
- * @param name
- * the name of the request attribute.
- * @param value
- * the value of the request attribute.
- */
- public ServletRequestAttributeEvent(ServletContext sc, ServletRequest request, String name, Object value)
- {
- super(sc, request);
- this.name = name;
- this.value = value;
- }
+ /** Construct a ServletRequestAttributeEvent giving the servlet context
+ * of this web application, the ServletRequest whose attributes are
+ * changing and the name and value of the attribute.
+ *
+ * @param sc the ServletContext that is sending the event.
+ * @param request the ServletRequest that is sending the event.
+ * @param name the name of the request attribute.
+ * @param value the value of the request attribute.
+ */
+ public ServletRequestAttributeEvent(ServletContext sc, ServletRequest request, String name, Object value) {
+ super(sc, request);
+ this.name = name;
+ this.value = value;
+ }
- /**
- * Return the name of the attribute that changed on the ServletRequest.
- *
- * @return the name of the changed request attribute
- */
- public String getName()
- {
- return this.name;
- }
+ /**
+ * Return the name of the attribute that changed on the ServletRequest.
+ *
+ * @return the name of the changed request attribute
+ */
+ public String getName() {
+ return this.name;
+ }
- /**
- * Returns the value of the attribute that has been added, removed or
- * replaced. If the attribute was added, this is the value of the attribute.
- * If the attribute was removed, this is the value of the removed attribute.
- * If the attribute was replaced, this is the old value of the attribute.
- *
- * @return the value of the changed request attribute
- */
- public Object getValue()
- {
- return this.value;
- }
+ /**
+ * Returns the value of the attribute that has been added, removed or
+ * replaced. If the attribute was added, this is the value of the
+ * attribute. If the attribute was removed, this is the value of the
+ * removed attribute. If the attribute was replaced, this is the old
+ * value of the attribute.
+ *
+ * @return the value of the changed request attribute
+ */
+ public Object getValue() {
+ return this.value;
+ }
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestAttributeListener.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestAttributeListener.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestAttributeListener.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,57 +1,50 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.util.EventListener;
-/**
- * A ServletRequestAttributeListener can be implemented by the developer
- * interested in being notified of request attribute changes. Notifications will
- * be generated while the request is within the scope of the web application in
- * which the listener is registered. A request is defined as coming into scope
- * when it is about to enter the first servlet or filter in each web
- * application, as going out of scope when it exits the last servlet or the
- * first filter in the chain.
- *
- * @since Servlet 2.4
- */
+ /**
+ * A ServletRequestAttributeListener can be implemented by the
+ * developer interested in being notified of request attribute
+ * changes. Notifications will be generated while the request
+ * is within the scope of the web application in which the listener
+ * is registered. A request is defined as coming into scope when
+ * it is about to enter the first servlet or filter in each web
+ * application, as going out of scope when it exits the last servlet
+ * or the first filter in the chain.
+ *
+ * @since Servlet 2.4
+ */
-public interface ServletRequestAttributeListener extends EventListener
-{
- /**
- * Notification that a new attribute was added to the * servlet request.
- * Called after the attribute is added.
- */
- public void attributeAdded(ServletRequestAttributeEvent srae);
+public interface ServletRequestAttributeListener extends EventListener {
+ /** Notification that a new attribute was added to the
+ ** servlet request. Called after the attribute is added.
+ */
+ public void attributeAdded(ServletRequestAttributeEvent srae);
- /**
- * Notification that an existing attribute has been removed from the *
- * servlet request. Called after the attribute is removed.
- */
- public void attributeRemoved(ServletRequestAttributeEvent srae);
+ /** Notification that an existing attribute has been removed from the
+ ** servlet request. Called after the attribute is removed.
+ */
+ public void attributeRemoved(ServletRequestAttributeEvent srae);
- /**
- * Notification that an attribute was replaced on the * servlet request.
- * Called after the attribute is replaced.
- */
- public void attributeReplaced(ServletRequestAttributeEvent srae);
+ /** Notification that an attribute was replaced on the
+ ** servlet request. Called after the attribute is replaced.
+ */
+ public void attributeReplaced(ServletRequestAttributeEvent srae);
}
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestEvent.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestEvent.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestEvent.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,66 +1,56 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
-/**
- * Events of this kind indicate lifecycle events for a ServletRequest. The
- * source of the event is the ServletContext of this web application.
- *
- * @see ServletRequestListener
- * @since Servlet 2.4
- */
-public class ServletRequestEvent extends java.util.EventObject
-{
- private ServletRequest request;
+ /**
+ * Events of this kind indicate lifecycle
+ * events for a ServletRequest.
+ * The source of the event
+ * is the ServletContext of this web application.
+ * @see ServletRequestListener
+ * @since Servlet 2.4
+ */
- /**
- * Construct a ServletRequestEvent for the given ServletContext and
- * ServletRequest.
- *
- * @param sc
- * the ServletContext of the web application.
- * @param request
- * the ServletRequest that is sending the event.
- */
- public ServletRequestEvent(ServletContext sc, ServletRequest request)
- {
- super(sc);
- this.request = request;
- }
+public class ServletRequestEvent extends java.util.EventObject {
+ private ServletRequest request;
- /**
- * Returns the ServletRequest that is changing.
- */
- public ServletRequest getServletRequest()
- {
- return this.request;
- }
+ /** Construct a ServletRequestEvent for the given ServletContext
+ * and ServletRequest.
+ *
+ * @param sc the ServletContext of the web application.
+ * @param request the ServletRequest that is sending the event.
+ */
+ public ServletRequestEvent(ServletContext sc, ServletRequest request) {
+ super(sc);
+ this.request = request;
+ }
+
+ /**
+ * Returns the ServletRequest that is changing.
+ */
+ public ServletRequest getServletRequest () {
+ return this.request;
+ }
- /**
- * Returns the ServletContext of this web application.
- */
- public ServletContext getServletContext()
- {
- return (ServletContext) super.getSource();
- }
+ /**
+ * Returns the ServletContext of this web application.
+ */
+ public ServletContext getServletContext () {
+ return (ServletContext) super.getSource();
+ }
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestListener.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestListener.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestListener.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,44 +1,40 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.util.EventListener;
-/**
- * A ServletRequestListener can be implemented by the developer interested in
- * being notified of requests coming in and out of scope in a web component. A
- * request is defined as coming into scope when it is about to enter the first
- * servlet or filter in each web application, as going out of scope when it
- * exits the last servlet or the first filter in the chain.
- *
- * @since Servlet 2.4
- */
+ /**
+ * A ServletRequestListener can be implemented by the developer
+ * interested in being notified of requests coming in and out of
+ * scope in a web component. A request is defined as coming into
+ * scope when it is about to enter the first servlet or filter
+ * in each web application, as going out of scope when it exits
+ * the last servlet or the first filter in the chain.
+ *
+ * @since Servlet 2.4
+ */
-public interface ServletRequestListener extends EventListener
-{
- /** The request is about to go out of scope of the web application. */
- public void requestDestroyed(ServletRequestEvent sre);
+public interface ServletRequestListener extends EventListener {
- /** The request is about to come into scope of the web application. */
- public void requestInitialized(ServletRequestEvent sre);
+ /** The request is about to go out of scope of the web application. */
+ public void requestDestroyed ( ServletRequestEvent sre );
+
+ /** The request is about to come into scope of the web application. */
+ public void requestInitialized ( ServletRequestEvent sre );
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestWrapper.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestWrapper.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletRequestWrapper.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,24 +1,19 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.io.BufferedReader;
@@ -27,350 +22,380 @@
import java.util.Locale;
import java.util.Map;
+
+
/**
- * Provides a convenient implementation of the ServletRequest 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.
*
- * @since v 2.3
- * @see javax.servlet.ServletRequest
+ * Provides a convenient implementation of the ServletRequest 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.
+ * @since v 2.3
+ *
+ *
+ *
+ * @see javax.servlet.ServletRequest
+ *
*/
-public class ServletRequestWrapper implements ServletRequest
-{
- private ServletRequest request;
+public class ServletRequestWrapper implements ServletRequest {
+ private ServletRequest request;
- /**
- * Creates a ServletRequest adaptor wrapping the given request object.
- *
- * @throws java.lang.IllegalArgumentException
- * if the request is null
- */
+ /**
+ * Creates a ServletRequest adaptor wrapping the given request object.
+ * @throws java.lang.IllegalArgumentException if the request is null
+ */
- public ServletRequestWrapper(ServletRequest request)
- {
- if (request == null)
- {
- throw new IllegalArgumentException("Request cannot be null");
- }
- this.request = request;
- }
+ public ServletRequestWrapper(ServletRequest request) {
+ if (request == null) {
+ throw new IllegalArgumentException("Request cannot be null");
+ }
+ this.request = request;
+ }
- /**
- * Return the wrapped request object.
- */
- public ServletRequest getRequest()
- {
- return this.request;
- }
+ /**
+ * Return the wrapped request object.
+ */
+ public ServletRequest getRequest() {
+ return this.request;
+ }
+
+ /**
+ * Sets the request object being wrapped.
+ * @throws java.lang.IllegalArgumentException if the request is null.
+ */
+
+ public void setRequest(ServletRequest request) {
+ if (request == null) {
+ throw new IllegalArgumentException("Request cannot be null");
+ }
+ this.request = request;
+ }
- /**
- * Sets the request object being wrapped.
- *
- * @throws java.lang.IllegalArgumentException
- * if the request is null.
- */
+ /**
+ *
+ * The default behavior of this method is to call getAttribute(String name)
+ * on the wrapped request object.
+ */
- public void setRequest(ServletRequest request)
- {
- if (request == null)
- {
- throw new IllegalArgumentException("Request cannot be null");
- }
- this.request = request;
- }
+ public Object getAttribute(String name) {
+ return this.request.getAttribute(name);
+ }
+
+
- /**
- * The default behavior of this method is to call getAttribute(String name)
- * on the wrapped request object.
- */
+ /**
+ * The default behavior of this method is to return getAttributeNames()
+ * on the wrapped request object.
+ */
- public Object getAttribute(String name)
- {
- return this.request.getAttribute(name);
- }
+ public Enumeration getAttributeNames() {
+ return this.request.getAttributeNames();
+ }
+
+
+
+ /**
+ * The default behavior of this method is to return getCharacterEncoding()
+ * on the wrapped request object.
+ */
- /**
- * The default behavior of this method is to return getAttributeNames() on
- * the wrapped request object.
- */
+ public String getCharacterEncoding() {
+ return this.request.getCharacterEncoding();
+ }
+
+ /**
+ * The default behavior of this method is to set the character encoding
+ * on the wrapped request object.
+ */
- public Enumeration getAttributeNames()
- {
- return this.request.getAttributeNames();
- }
+ public void setCharacterEncoding(String enc) throws java.io.UnsupportedEncodingException {
+ this.request.setCharacterEncoding(enc);
+ }
+
+
+ /**
+ * The default behavior of this method is to return getContentLength()
+ * on the wrapped request object.
+ */
- /**
- * The default behavior of this method is to return getCharacterEncoding() on
- * the wrapped request object.
- */
+ public int getContentLength() {
+ return this.request.getContentLength();
+ }
+
+
+
- public String getCharacterEncoding()
- {
- return this.request.getCharacterEncoding();
- }
+ /**
+ * The default behavior of this method is to return getContentType()
+ * on the wrapped request object.
+ */
+ public String getContentType() {
+ return this.request.getContentType();
+ }
+
+
+
- /**
- * The default behavior of this method is to set the character encoding on
- * the wrapped request object.
- */
+ /**
+ * The default behavior of this method is to return getInputStream()
+ * on the wrapped request object.
+ */
- public void setCharacterEncoding(String enc) throws java.io.UnsupportedEncodingException
- {
- this.request.setCharacterEncoding(enc);
- }
+ public ServletInputStream getInputStream() throws IOException {
+ return this.request.getInputStream();
+ }
+
+
+
- /**
- * The default behavior of this method is to return getContentLength() on the
- * wrapped request object.
- */
+ /**
+ * The default behavior of this method is to return getParameter(String name)
+ * on the wrapped request object.
+ */
- public int getContentLength()
- {
- return this.request.getContentLength();
- }
+ public String getParameter(String name) {
+ return this.request.getParameter(name);
+ }
+
+ /**
+ * The default behavior of this method is to return getParameterMap()
+ * on the wrapped request object.
+ */
+ public Map getParameterMap() {
+ return this.request.getParameterMap();
+ }
+
+
+
- /**
- * The default behavior of this method is to return getContentType() on the
- * wrapped request object.
- */
- public String getContentType()
- {
- return this.request.getContentType();
- }
+ /**
+ * The default behavior of this method is to return getParameterNames()
+ * on the wrapped request object.
+ */
+
+ public Enumeration getParameterNames() {
+ return this.request.getParameterNames();
+ }
+
+
+
- /**
- * The default behavior of this method is to return getInputStream() on the
- * wrapped request object.
- */
+ /**
+ * The default behavior of this method is to return getParameterValues(String name)
+ * on the wrapped request object.
+ */
+ public String[] getParameterValues(String name) {
+ return this.request.getParameterValues(name);
+ }
+
+
+
- public ServletInputStream getInputStream() throws IOException
- {
- return this.request.getInputStream();
- }
+ /**
+ * The default behavior of this method is to return getProtocol()
+ * on the wrapped request object.
+ */
+
+ public String getProtocol() {
+ return this.request.getProtocol();
+ }
+
+
+
- /**
- * The default behavior of this method is to return getParameter(String name)
- * on the wrapped request object.
- */
+ /**
+ * The default behavior of this method is to return getScheme()
+ * on the wrapped request object.
+ */
+
- public String getParameter(String name)
- {
- return this.request.getParameter(name);
- }
+ public String getScheme() {
+ return this.request.getScheme();
+ }
+
+
+
- /**
- * The default behavior of this method is to return getParameterMap() on the
- * wrapped request object.
- */
- public Map getParameterMap()
- {
- return this.request.getParameterMap();
- }
+ /**
+ * The default behavior of this method is to return getServerName()
+ * on the wrapped request object.
+ */
+ public String getServerName() {
+ return this.request.getServerName();
+ }
+
+
+
/**
- * The default behavior of this method is to return getParameterNames() on
- * the wrapped request object.
- */
+ * The default behavior of this method is to return getServerPort()
+ * on the wrapped request object.
+ */
- public Enumeration getParameterNames()
- {
- return this.request.getParameterNames();
- }
+ public int getServerPort() {
+ return this.request.getServerPort();
+ }
+
+
+
+ /**
+ * The default behavior of this method is to return getReader()
+ * on the wrapped request object.
+ */
- /**
- * The default behavior of this method is to return getParameterValues(String
- * name) on the wrapped request object.
- */
- public String[] getParameterValues(String name)
- {
- return this.request.getParameterValues(name);
- }
+ public BufferedReader getReader() throws IOException {
+ return this.request.getReader();
+ }
+
+
+
- /**
- * The default behavior of this method is to return getProtocol() on the
- * wrapped request object.
- */
+ /**
+ * The default behavior of this method is to return getRemoteAddr()
+ * on the wrapped request object.
+ */
+
+ public String getRemoteAddr() {
+ return this.request.getRemoteAddr();
+ }
+
+
+
- public String getProtocol()
- {
- return this.request.getProtocol();
- }
+ /**
+ * The default behavior of this method is to return getRemoteHost()
+ * on the wrapped request object.
+ */
- /**
- * The default behavior of this method is to return getScheme() on the
- * wrapped request object.
- */
+ public String getRemoteHost() {
+ return this.request.getRemoteHost();
+ }
+
+
+
- public String getScheme()
- {
- return this.request.getScheme();
- }
+ /**
+ * The default behavior of this method is to return setAttribute(String name, Object o)
+ * on the wrapped request object.
+ */
- /**
- * The default behavior of this method is to return getServerName() on the
- * wrapped request object.
- */
- public String getServerName()
- {
- return this.request.getServerName();
- }
+ public void setAttribute(String name, Object o) {
+ this.request.setAttribute(name, o);
+ }
+
+
+
- /**
- * The default behavior of this method is to return getServerPort() on the
- * wrapped request object.
- */
+ /**
+ * The default behavior of this method is to call removeAttribute(String name)
+ * on the wrapped request object.
+ */
+ public void removeAttribute(String name) {
+ this.request.removeAttribute(name);
+ }
+
+
+
- public int getServerPort()
- {
- return this.request.getServerPort();
- }
-
/**
- * The default behavior of this method is to return getReader() on the
- * wrapped request object.
- */
+ * The default behavior of this method is to return getLocale()
+ * on the wrapped request object.
+ */
- public BufferedReader getReader() throws IOException
- {
- return this.request.getReader();
- }
+ public Locale getLocale() {
+ return this.request.getLocale();
+ }
+
+
+
- /**
- * The default behavior of this method is to return getRemoteAddr() on the
- * wrapped request object.
- */
+ /**
+ * The default behavior of this method is to return getLocales()
+ * on the wrapped request object.
+ */
- public String getRemoteAddr()
- {
- return this.request.getRemoteAddr();
- }
+ public Enumeration getLocales() {
+ return this.request.getLocales();
+ }
+
+
+
- /**
- * The default behavior of this method is to return getRemoteHost() on the
- * wrapped request object.
- */
+ /**
+ * The default behavior of this method is to return isSecure()
+ * on the wrapped request object.
+ */
- public String getRemoteHost()
- {
- return this.request.getRemoteHost();
- }
+ public boolean isSecure() {
+ return this.request.isSecure();
+ }
+
+
+
- /**
- * The default behavior of this method is to return setAttribute(String name,
- * Object o) on the wrapped request object.
- */
+ /**
+ * The default behavior of this method is to return getRequestDispatcher(String path)
+ * on the wrapped request object.
+ */
- public void setAttribute(String name, Object o)
- {
- this.request.setAttribute(name, o);
- }
+ public RequestDispatcher getRequestDispatcher(String path) {
+ return this.request.getRequestDispatcher(path);
+ }
+
+
+
- /**
- * The default behavior of this method is to call removeAttribute(String
- * name) on the wrapped request object.
- */
- public void removeAttribute(String name)
- {
- this.request.removeAttribute(name);
- }
+ /**
+ * The default behavior of this method is to return getRealPath(String path)
+ * on the wrapped request object.
+ */
- /**
- * The default behavior of this method is to return getLocale() on the
- * wrapped request object.
- */
+ public String getRealPath(String path) {
+ return this.request.getRealPath(path);
+ }
+
+ /**
+ * The default behavior of this method is to return
+ * getRemotePort() on the wrapped request object.
+ *
+ * @since 2.4
+ */
+ public int getRemotePort(){
+ return this.request.getRemotePort();
+ }
- public Locale getLocale()
- {
- return this.request.getLocale();
- }
- /**
- * The default behavior of this method is to return getLocales() on the
- * wrapped request object.
- */
+ /**
+ * The default behavior of this method is to return
+ * getLocalName() on the wrapped request object.
+ *
+ * @since 2.4
+ */
+ public String getLocalName(){
+ return this.request.getLocalName();
+ }
- public Enumeration getLocales()
- {
- return this.request.getLocales();
- }
+ /**
+ * The default behavior of this method is to return
+ * getLocalAddr() on the wrapped request object.
+ *
+ * @since 2.4
+ */
+ public String getLocalAddr(){
+ return this.request.getLocalAddr();
+ }
- /**
- * The default behavior of this method is to return isSecure() on the wrapped
- * request object.
- */
- public boolean isSecure()
- {
- return this.request.isSecure();
- }
+ /**
+ * The default behavior of this method is to return
+ * getLocalPort() on the wrapped request object.
+ *
+ * @since 2.4
+ */
+ public int getLocalPort(){
+ return this.request.getLocalPort();
+ }
+
+}
- /**
- * The default behavior of this method is to return
- * getRequestDispatcher(String path) on the wrapped request object.
- */
-
- public RequestDispatcher getRequestDispatcher(String path)
- {
- return this.request.getRequestDispatcher(path);
- }
-
- /**
- * The default behavior of this method is to return getRealPath(String path)
- * on the wrapped request object.
- *
- * @deprecated As of Version 2.1 of the Java Servlet API, use
- * {@link ServletContext#getRealPath} instead.
- */
- @Deprecated
- public String getRealPath(String path)
- {
- return this.request.getRealPath(path);
- }
-
- /**
- * The default behavior of this method is to return getRemotePort() on the
- * wrapped request object.
- *
- * @since 2.4
- */
- public int getRemotePort()
- {
- return this.request.getRemotePort();
- }
-
- /**
- * The default behavior of this method is to return getLocalName() on the
- * wrapped request object.
- *
- * @since 2.4
- */
- public String getLocalName()
- {
- return this.request.getLocalName();
- }
-
- /**
- * The default behavior of this method is to return getLocalAddr() on the
- * wrapped request object.
- *
- * @since 2.4
- */
- public String getLocalAddr()
- {
- return this.request.getLocalAddr();
- }
-
- /**
- * The default behavior of this method is to return getLocalPort() on the
- * wrapped request object.
- *
- * @since 2.4
- */
- public int getLocalPort()
- {
- return this.request.getLocalPort();
- }
-
-}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletResponse.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletResponse.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletResponse.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,360 +1,453 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Locale;
+
/**
* Defines an object to assist a servlet in sending a response to the client.
* The servlet container creates a <code>ServletResponse</code> object and
* passes it as an argument to the servlet's <code>service</code> method.
- * <p>
- * To send binary data in a MIME body response, use the
- * {@link ServletOutputStream} returned by {@link #getOutputStream}. To send
- * character data, use the <code>PrintWriter</code> object returned by
- * {@link #getWriter}. To mix binary and text data, for example, to create a
- * multipart response, use a <code>ServletOutputStream</code> and manage the
- * character sections manually.
- * <p>
- * The charset for the MIME body response can be specified explicitly using the
- * {@link #setCharacterEncoding} and {@link #setContentType} methods, or
- * implicitly using the {@link #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://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.
+ *
+ * <p>To send binary data in a MIME body response, use
+ * the {@link ServletOutputStream} returned by {@link #getOutputStream}.
+ * To send character data, use the <code>PrintWriter</code> object
+ * returned by {@link #getWriter}. To mix binary and text data,
+ * for example, to create a multipart response, use a
+ * <code>ServletOutputStream</code> and manage the character sections
+ * manually.
+ *
+ * <p>The charset for the MIME body response can be specified
+ * explicitly using the {@link #setCharacterEncoding} and
+ * {@link #setContentType} methods, or implicitly
+ * using the {@link #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.
*
- * @author Various
- * @see ServletOutputStream
+ * <p>See the Internet RFCs such as
+ * <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.
+ *
+ * @author Various
+ * @version $Version$
+ *
+ * @see ServletOutputStream
+ *
*/
+
+public interface ServletResponse {
-public interface ServletResponse
-{
- /**
- * 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 {@link #setCharacterEncoding} or
- * {@link #setContentType} methods, or implicitly using the
- * {@link #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 character
- * encoding, for example, <code>UTF-8</code>
- */
+
+ /**
+ * 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 {@link #setCharacterEncoding} or
+ * {@link #setContentType} methods, or implicitly using the
+ * {@link #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 character encoding, for
+ * example, <code>UTF-8</code>
+ *
+ */
+
+ public String getCharacterEncoding();
+
+
- public String getCharacterEncoding();
+ /**
+ * Returns the content type used for the MIME body
+ * sent in this response. The content type proper must
+ * have been specified using {@link #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 {@link #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
+ *
+ * @since 2.4
+ */
+
+ public String getContentType();
+
+
- /**
- * Returns the content type used for the MIME body sent in this response. The
- * content type proper must have been specified using {@link #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 {@link #getCharacterEncoding} or {@link #getWriter} has been
- * called, 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
- * @since 2.4
- */
+ /**
+ * Returns a {@link ServletOutputStream} suitable for writing binary
+ * data in the response. The servlet container does not encode the
+ * binary data.
+
+ * <p> Calling flush() on the ServletOutputStream commits the response.
+
+ * Either this method or {@link #getWriter} may
+ * be called to write the body, not both.
+ *
+ * @return a {@link ServletOutputStream} for writing binary data
+ *
+ * @exception IllegalStateException if the <code>getWriter</code> method
+ * has been called on this response
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ * @see #getWriter
+ *
+ */
- public String getContentType();
+ public ServletOutputStream getOutputStream() throws IOException;
+
+
- /**
- * Returns a {@link ServletOutputStream} suitable for writing binary data in
- * the response. The servlet container does not encode the binary data.
- * <p>
- * Calling flush() on the ServletOutputStream commits the response. Either
- * this method or {@link #getWriter} may be called to write the body, not
- * both.
- *
- * @return a {@link ServletOutputStream} for writing binary data
- * @exception IllegalStateException
- * if the <code>getWriter</code> method has been called on
- * this response
- * @exception IOException
- * if an input or output exception occurred
- * @see #getWriter
- */
+ /**
+ * Returns a <code>PrintWriter</code> object that
+ * can send character text to the client.
+ * The <code>PrintWriter</code> uses the character
+ * encoding returned by {@link #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 {@link #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 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
+ *
+ * @see #getOutputStream
+ * @see #setCharacterEncoding
+ *
+ */
- public ServletOutputStream getOutputStream() throws IOException;
+ public PrintWriter getWriter() throws IOException;
+
+
+
+
+ /**
+ * 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
+ * {@link #setContentType} or {@link #setLocale},
+ * this method overrides it.
+ * Calling {@link #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 can be called repeatedly to change the character
+ * encoding.
+ * This method has no effect if it is called after
+ * <code>getWriter</code> has been
+ * called or after the response has been committed.
+ * <p>Containers must communicate the character encoding used for
+ * the servlet response's writer to the client if the protocol
+ * provides a way for doing so. In the case of HTTP, the character
+ * encoding is communicated as part of the <code>Content-Type</code>
+ * header for text media types. Note that the character encoding
+ * cannot be communicated via HTTP headers if the servlet does not
+ * specify a content type; however, it is still used to encode text
+ * written via the servlet response's writer.
+ *
+ * @param charset a String specifying only the character set
+ * defined by IANA Character Sets
+ * (http://www.iana.org/assignments/character-sets)
+ *
+ * @see #setContentType
+ * #setLocale
+ *
+ * @since 2.4
+ *
+ */
- /**
- * Returns a <code>PrintWriter</code> object that can send character text
- * to the client. The <code>PrintWriter</code> uses the character encoding
- * returned by {@link #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 {@link #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 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
- * @see #getOutputStream
- * @see #setCharacterEncoding
- */
+ public void setCharacterEncoding(String charset);
+
+
- public PrintWriter getWriter() throws IOException;
- /**
- * 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 {@link #setContentType} or {@link #setLocale}, this method
- * overrides it. Calling {@link #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 can be called repeatedly to change the character encoding.
- * This method has no effect if it is called after <code>getWriter</code>
- * has been called or after the response has been committed.
- * <p>
- * Containers must communicate the character encoding used for the servlet
- * response's writer to the client if the protocol provides a way for doing
- * so. In the case of HTTP, the character encoding is communicated as part of
- * the <code>Content-Type</code> header for text media types. Note that the
- * character encoding cannot be communicated via HTTP headers if the servlet
- * does not specify a content type; however, it is still used to encode text
- * written via the servlet response's writer.
- *
- * @param charset
- * a String specifying only the character set defined by IANA
- * Character Sets (http://www.iana.org/assignments/character-sets)
- * @see #setContentType
- * @see #setLocale
- * @since 2.4
- */
+ /**
+ * Sets the length of the content body in the response
+ * In HTTP servlets, this method sets the HTTP Content-Length header.
+ *
+ *
+ * @param len an integer specifying the length of the
+ * content being returned to the client; sets
+ * the Content-Length header
+ *
+ */
- public void setCharacterEncoding(String charset);
+ public void setContentLength(int len);
+
+
- /**
- * Sets the length of the content body in the response In HTTP servlets, this
- * method sets the HTTP Content-Length header.
- *
- * @param len
- * an integer specifying the length of the content being returned
- * to the client; sets the Content-Length header
- */
+ /**
+ * Sets the content type of the response being sent to
+ * 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 may be called repeatedly to change content type and
+ * character encoding.
+ * 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.
+ * <p>Containers must communicate the content type and the character
+ * encoding used for the servlet response's writer to the client if
+ * the protocol provides a way for doing so. In the case of HTTP,
+ * the <code>Content-Type</code> header is used.
+ *
+ * @param type a <code>String</code> specifying the MIME
+ * type of the content
+ *
+ * @see #setLocale
+ * @see #setCharacterEncoding
+ * @see #getOutputStream
+ * @see #getWriter
+ *
+ */
- public void setContentLength(int len);
+ public void setContentType(String type);
+
- /**
- * Sets the content type of the response being sent to 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 may be called repeatedly to change content type and character
- * encoding. 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.
- * <p>
- * Containers must communicate the content type and the character encoding
- * used for the servlet response's writer to the client if the protocol
- * provides a way for doing so. In the case of HTTP, the
- * <code>Content-Type</code> header is used.
- *
- * @param type
- * a <code>String</code> specifying the MIME type of the content
- * @see #setLocale
- * @see #setCharacterEncoding
- * @see #getOutputStream
- * @see #getWriter
- */
+ /**
+ * Sets the preferred buffer size for the body of the response.
+ * The servlet container will use a buffer at least as large as
+ * the size requested. The actual buffer size used can be found
+ * using <code>getBufferSize</code>.
+ *
+ * <p>A larger buffer allows more content to be written before anything is
+ * actually sent, thus providing the servlet with more time to set
+ * appropriate status codes and headers. A smaller buffer decreases
+ * server memory load and allows the client to start receiving data more
+ * quickly.
+ *
+ * <p>This method must be called before any response body content is
+ * 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
+ *
+ * @exception IllegalStateException if this method is called after
+ * content has been written
+ *
+ * @see #getBufferSize
+ * @see #flushBuffer
+ * @see #isCommitted
+ * @see #reset
+ *
+ */
- public void setContentType(String type);
+ public void setBufferSize(int size);
+
+
- /**
- * Sets the preferred buffer size for the body of the response. The servlet
- * container will use a buffer at least as large as the size requested. The
- * actual buffer size used can be found using <code>getBufferSize</code>.
- * <p>
- * A larger buffer allows more content to be written before anything is
- * actually sent, thus providing the servlet with more time to set
- * appropriate status codes and headers. A smaller buffer decreases server
- * memory load and allows the client to start receiving data more quickly.
- * <p>
- * This method must be called before any response body content is 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
- * @exception IllegalStateException
- * if this method is called after content has been written
- * @see #getBufferSize
- * @see #flushBuffer
- * @see #isCommitted
- * @see #reset
- */
+ /**
+ * Returns the actual buffer size used for the response. If no buffering
+ * is used, this method returns 0.
+ *
+ * @return the actual buffer size used
+ *
+ * @see #setBufferSize
+ * @see #flushBuffer
+ * @see #isCommitted
+ * @see #reset
+ *
+ */
- public void setBufferSize(int size);
+ public int getBufferSize();
+
+
- /**
- * Returns the actual buffer size used for the response. If no buffering is
- * used, this method returns 0.
- *
- * @return the actual buffer size used
- * @see #setBufferSize
- * @see #flushBuffer
- * @see #isCommitted
- * @see #reset
- */
+ /**
+ * Forces any content in the buffer to be written to the client. A call
+ * to this method automatically commits the response, meaning the status
+ * code and headers will be written.
+ *
+ * @see #setBufferSize
+ * @see #getBufferSize
+ * @see #isCommitted
+ * @see #reset
+ *
+ */
- public int getBufferSize();
+ public void flushBuffer() throws IOException;
+
+
+
+ /**
+ * Clears the content of the underlying buffer in the response without
+ * clearing headers or status code. If the
+ * response has been committed, this method throws an
+ * <code>IllegalStateException</code>.
+ *
+ * @see #setBufferSize
+ * @see #getBufferSize
+ * @see #isCommitted
+ * @see #reset
+ *
+ * @since 2.3
+ */
- /**
- * Forces any content in the buffer to be written to the client. A call to
- * this method automatically commits the response, meaning the status code
- * and headers will be written.
- *
- * @see #setBufferSize
- * @see #getBufferSize
- * @see #isCommitted
- * @see #reset
- */
+ public void resetBuffer();
+
- public void flushBuffer() throws IOException;
+ /**
+ * Returns a boolean indicating if the response has been
+ * committed. A committed response has already had its status
+ * code and headers written.
+ *
+ * @return a boolean indicating if the response has been
+ * committed
+ *
+ * @see #setBufferSize
+ * @see #getBufferSize
+ * @see #flushBuffer
+ * @see #reset
+ *
+ */
- /**
- * Clears the content of the underlying buffer in the response without
- * clearing headers or status code. If the response has been committed, this
- * method throws an <code>IllegalStateException</code>.
- *
- * @see #setBufferSize
- * @see #getBufferSize
- * @see #isCommitted
- * @see #reset
- * @since 2.3
- */
+ public boolean isCommitted();
+
+
- public void resetBuffer();
+ /**
+ * Clears any data that exists in the buffer as well as the status code and
+ * headers. If the response has been committed, this method throws an
+ * <code>IllegalStateException</code>.
+ *
+ * @exception IllegalStateException if the response has already been
+ * committed
+ *
+ * @see #setBufferSize
+ * @see #getBufferSize
+ * @see #flushBuffer
+ * @see #isCommitted
+ *
+ */
- /**
- * Returns a boolean indicating if the response has been committed. A
- * committed response has already had its status code and headers written.
- *
- * @return a boolean indicating if the response has been committed
- * @see #setBufferSize
- * @see #getBufferSize
- * @see #flushBuffer
- * @see #reset
- */
+ public void reset();
+
+
- public boolean isCommitted();
+ /**
+ * Sets the locale of the response, 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 {@link #setContentType} or
+ * {@link #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 may be called repeatedly to change locale and
+ * character encoding. The 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 {@link #setContentType}
+ * has been called with a charset specification, after
+ * {@link #setCharacterEncoding} has been called, after
+ * <code>getWriter</code> has been called, or after the response
+ * has been committed.
+ * <p>Containers must communicate the locale and the character encoding
+ * used for the servlet response's writer to the client if the protocol
+ * provides a way for doing so. In the case of HTTP, the locale is
+ * communicated via the <code>Content-Language</code> header,
+ * the character encoding as part of the <code>Content-Type</code>
+ * header for text media types. Note that the character encoding
+ * cannot be communicated via HTTP headers if the servlet does not
+ * specify a content type; however, it is still used to encode text
+ * written via the servlet response's writer.
+ *
+ * @param loc the locale of the response
+ *
+ * @see #getLocale
+ * @see #setContentType
+ * @see #setCharacterEncoding
+ *
+ */
- /**
- * Clears any data that exists in the buffer as well as the status code and
- * headers. If the response has been committed, this method throws an
- * <code>IllegalStateException</code>.
- *
- * @exception IllegalStateException
- * if the response has already been committed
- * @see #setBufferSize
- * @see #getBufferSize
- * @see #flushBuffer
- * @see #isCommitted
- */
+ public void setLocale(Locale loc);
+
+
- public void reset();
+ /**
+ * Returns the locale specified for this response
+ * using the {@link #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
+ *
+ */
- /**
- * Sets the locale of the response, 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
- * {@link #setContentType} or {@link #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 may be called repeatedly to change locale and character
- * encoding. The 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 {@link #setContentType} has been called with a charset
- * specification, after {@link #setCharacterEncoding} has been called, after
- * <code>getWriter</code> has been called, or after the response has been
- * committed.
- * <p>
- * Containers must communicate the locale and the character encoding used for
- * the servlet response's writer to the client if the protocol provides a way
- * for doing so. In the case of HTTP, the locale is communicated via the
- * <code>Content-Language</code> header, the character encoding as part of
- * the <code>Content-Type</code> header for text media types. Note that the
- * character encoding cannot be communicated via HTTP headers if the servlet
- * does not specify a content type; however, it is still used to encode text
- * written via the servlet response's writer.
- *
- * @param loc
- * the locale of the response
- * @see #getLocale
- * @see #setContentType
- * @see #setCharacterEncoding
- */
+ public Locale getLocale();
- public void setLocale(Locale loc);
- /**
- * Returns the locale specified for this response using the
- * {@link #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
- */
- public Locale getLocale();
+}
-}
+
+
+
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletResponseWrapper.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletResponseWrapper.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/ServletResponseWrapper.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,24 +1,19 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet;
import java.io.IOException;
@@ -26,209 +21,198 @@
import java.util.Locale;
/**
+ *
* Provides a convenient implementation of the ServletResponse 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
- * @since v 2.3
- * @see javax.servlet.ServletResponse
+ * @author Various
+ * @version $Version$
+ * @since v 2.3
+ *
+ * @see javax.servlet.ServletResponse
+ *
*/
-public class ServletResponseWrapper implements ServletResponse
-{
- private ServletResponse response;
+
+public class ServletResponseWrapper implements ServletResponse {
+ private ServletResponse response;
+ /**
+ * Creates a ServletResponse adaptor wrapping the given response object.
+ * @throws java.lang.IllegalArgumentException if the response is null.
+ */
- /**
- * Creates a ServletResponse adaptor wrapping the given response object.
- *
- * @throws java.lang.IllegalArgumentException
- * if the response is null.
- */
- public ServletResponseWrapper(ServletResponse response)
- {
- if (response == null)
- {
- throw new IllegalArgumentException("Response cannot be null");
- }
- this.response = response;
- }
+ public ServletResponseWrapper(ServletResponse response) {
+ if (response == null) {
+ throw new IllegalArgumentException("Response cannot be null");
+ }
+ this.response = response;
+ }
- /**
- * Return the wrapped ServletResponse object.
- */
+ /**
+ * Return the wrapped ServletResponse object.
+ */
- public ServletResponse getResponse()
- {
- return this.response;
- }
+ public ServletResponse getResponse() {
+ return this.response;
+ }
+
+
+ /**
+ * Sets the response being wrapped.
+ * @throws java.lang.IllegalArgumentException if the response is null.
+ */
+
+ public void setResponse(ServletResponse response) {
+ if (response == null) {
+ throw new IllegalArgumentException("Response cannot be null");
+ }
+ this.response = response;
+ }
- /**
- * Sets the response being wrapped.
- *
- * @throws java.lang.IllegalArgumentException
- * if the response is null.
- */
+ /**
+ * The default behavior of this method is to call setCharacterEncoding(String charset)
+ * on the wrapped response object.
+ *
+ * @since 2.4
+ */
- public void setResponse(ServletResponse response)
- {
- if (response == null)
- {
- throw new IllegalArgumentException("Response cannot be null");
- }
- this.response = response;
- }
+ public void setCharacterEncoding(String charset) {
+ this.response.setCharacterEncoding(charset);
+ }
- /**
- * The default behavior of this method is to call setCharacterEncoding(String
- * charset) on the wrapped response object.
- *
- * @since 2.4
- */
+ /**
+ * The default behavior of this method is to return getCharacterEncoding()
+ * on the wrapped response object.
+ */
- public void setCharacterEncoding(String charset)
- {
- this.response.setCharacterEncoding(charset);
- }
+ public String getCharacterEncoding() {
+ return this.response.getCharacterEncoding();
+ }
+
+
+ /**
+ * The default behavior of this method is to return getOutputStream()
+ * on the wrapped response object.
+ */
- /**
- * The default behavior of this method is to return getCharacterEncoding() on
- * the wrapped response object.
- */
+ public ServletOutputStream getOutputStream() throws IOException {
+ return this.response.getOutputStream();
+ }
+
+ /**
+ * The default behavior of this method is to return getWriter()
+ * on the wrapped response object.
+ */
- public String getCharacterEncoding()
- {
- return this.response.getCharacterEncoding();
- }
- /**
- * The default behavior of this method is to return getOutputStream() on the
- * wrapped response object.
- */
+ public PrintWriter getWriter() throws IOException {
+ return this.response.getWriter();
+ }
+
+ /**
+ * The default behavior of this method is to call setContentLength(int len)
+ * on the wrapped response object.
+ */
- public ServletOutputStream getOutputStream() throws IOException
- {
- return this.response.getOutputStream();
- }
+ public void setContentLength(int len) {
+ this.response.setContentLength(len);
+ }
+
+ /**
+ * The default behavior of this method is to call setContentType(String type)
+ * on the wrapped response object.
+ */
- /**
- * The default behavior of this method is to return getWriter() on the
- * wrapped response object.
- */
+ public void setContentType(String type) {
+ this.response.setContentType(type);
+ }
- public PrintWriter getWriter() throws IOException
- {
- return this.response.getWriter();
- }
+ /**
+ * The default behavior of this method is to return getContentType()
+ * on the wrapped response object.
+ *
+ * @since 2.4
+ */
- /**
- * The default behavior of this method is to call setContentLength(int len)
- * on the wrapped response object.
- */
+ public String getContentType() {
+ return this.response.getContentType();
+ }
+
+ /**
+ * The default behavior of this method is to call setBufferSize(int size)
+ * on the wrapped response object.
+ */
+ public void setBufferSize(int size) {
+ this.response.setBufferSize(size);
+ }
+
+ /**
+ * The default behavior of this method is to return getBufferSize()
+ * on the wrapped response object.
+ */
+ public int getBufferSize() {
+ return this.response.getBufferSize();
+ }
- public void setContentLength(int len)
- {
- this.response.setContentLength(len);
- }
+ /**
+ * The default behavior of this method is to call flushBuffer()
+ * on the wrapped response object.
+ */
- /**
- * The default behavior of this method is to call setContentType(String type)
- * on the wrapped response object.
- */
+ public void flushBuffer() throws IOException {
+ this.response.flushBuffer();
+ }
+
+ /**
+ * The default behavior of this method is to return isCommitted()
+ * on the wrapped response object.
+ */
+ public boolean isCommitted() {
+ return this.response.isCommitted();
+ }
- public void setContentType(String type)
- {
- this.response.setContentType(type);
- }
+ /**
+ * The default behavior of this method is to call reset()
+ * on the wrapped response object.
+ */
- /**
- * The default behavior of this method is to return getContentType() on the
- * wrapped response object.
- *
- * @since 2.4
- */
+ public void reset() {
+ this.response.reset();
+ }
+
+ /**
+ * The default behavior of this method is to call resetBuffer()
+ * on the wrapped response object.
+ */
+
+ public void resetBuffer() {
+ this.response.resetBuffer();
+ }
+
+ /**
+ * The default behavior of this method is to call setLocale(Locale loc)
+ * on the wrapped response object.
+ */
- public String getContentType()
- {
- return this.response.getContentType();
- }
+ public void setLocale(Locale loc) {
+ this.response.setLocale(loc);
+ }
+
+ /**
+ * The default behavior of this method is to return getLocale()
+ * on the wrapped response object.
+ */
+ public Locale getLocale() {
+ return this.response.getLocale();
+ }
- /**
- * The default behavior of this method is to call setBufferSize(int size) on
- * the wrapped response object.
- */
- public void setBufferSize(int size)
- {
- this.response.setBufferSize(size);
- }
- /**
- * The default behavior of this method is to return getBufferSize() on the
- * wrapped response object.
- */
- public int getBufferSize()
- {
- return this.response.getBufferSize();
- }
+}
- /**
- * The default behavior of this method is to call flushBuffer() on the
- * wrapped response object.
- */
- public void flushBuffer() throws IOException
- {
- this.response.flushBuffer();
- }
- /**
- * The default behavior of this method is to return isCommitted() on the
- * wrapped response object.
- */
- public boolean isCommitted()
- {
- return this.response.isCommitted();
- }
- /**
- * The default behavior of this method is to call reset() on the wrapped
- * response object.
- */
- public void reset()
- {
- this.response.reset();
- }
-
- /**
- * The default behavior of this method is to call resetBuffer() on the
- * wrapped response object.
- */
-
- public void resetBuffer()
- {
- this.response.resetBuffer();
- }
-
- /**
- * The default behavior of this method is to call setLocale(Locale loc) on
- * the wrapped response object.
- */
-
- public void setLocale(Locale loc)
- {
- this.response.setLocale(loc);
- }
-
- /**
- * The default behavior of this method is to return getLocale() on the
- * wrapped response object.
- */
- public Locale getLocale()
- {
- return this.response.getLocale();
- }
-
-}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/SingleThreadModel.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/SingleThreadModel.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/SingleThreadModel.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,49 +1,49 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package javax.servlet;
+
+/**
+ * Ensures that servlets handle
+ * only one request at a time. This interface has no methods.
*
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
+ * <p>If a servlet implements this interface, you are <i>guaranteed</i>
+ * that no two threads will execute concurrently in the
+ * servlet's <code>service</code> method. The servlet container
+ * can make this guarantee by synchronizing access to a single
+ * instance of the servlet, or by maintaining a pool of servlet
+ * instances and dispatching each new request to a free servlet.
*
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
+ * <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.
*
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ *
+ * @author Various
+ * @version $Version$
+ *
+ * @deprecated As of Java Servlet API 2.4, with no direct
+ * replacement.
*/
-package javax.servlet;
-/**
- * Ensures that servlets handle only one request at a time. This interface has
- * no methods.
- * <p>
- * If a servlet implements this interface, you are <i>guaranteed</i> that no
- * two threads will execute concurrently in the servlet's <code>service</code>
- * method. The servlet container can make this guarantee by synchronizing access
- * to a single instance of the servlet, or by maintaining a pool of servlet
- * instances and dispatching each new request to a free 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
- * @deprecated As of Java Servlet API 2.4, with no direct replacement.
- */
- at Deprecated
-public interface SingleThreadModel
-{
+public interface SingleThreadModel {
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/UnavailableException.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/UnavailableException.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/UnavailableException.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,191 +1,206 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
package javax.servlet;
+
/**
- * Defines an exception that a servlet or filter throws to indicate that it is
- * permanently or temporarily unavailable.
- * <p>
- * When a servlet or filter is permanently unavailable, something is wrong with
- * it, and it cannot handle requests until some action is taken. For example, a
- * servlet might be configured incorrectly, or a filter's state may be
- * corrupted. The component should log both the error and the corrective action
+ * Defines an exception that a servlet or filter throws to indicate
+ * that it is permanently or temporarily unavailable.
+ *
+ * <p>When a servlet or filter is permanently unavailable, something is wrong
+ * with it, and it cannot handle
+ * requests until some action is taken. For example, a servlet
+ * might be configured incorrectly, or a filter's state may be corrupted.
+ * The component should log both the error and the corrective action
* that is needed.
- * <p>
- * A servlet or filter is temporarily unavailable if it cannot handle requests
- * momentarily due to some system-wide problem. For example, a third-tier server
- * might not be accessible, or there may be insufficient memory or disk storage
- * to handle requests. A system administrator may need to take corrective
- * action.
- * <p>
- * Servlet containers can safely treat both types of unavailable exceptions in
- * the same way. However, treating temporary unavailability effectively makes
- * the servlet container more robust. Specifically, the servlet container might
- * block requests to the servlet or filter for a period of time suggested by the
- * exception, rather than rejecting them until the servlet container restarts.
- *
- * @author Various
+ *
+ * <p>A servlet or filter is temporarily unavailable if it cannot handle
+ * requests momentarily due to some system-wide problem. For example,
+ * a third-tier server might not be accessible, or there may be
+ * insufficient memory or disk storage to handle requests. A system
+ * administrator may need to take corrective action.
+ *
+ * <p>Servlet containers can safely treat both types of unavailable
+ * exceptions in the same way. However, treating temporary unavailability
+ * effectively makes the servlet container more robust. Specifically,
+ * the servlet container might block requests to the servlet or filter for a period
+ * of time suggested by the exception, rather than rejecting them until
+ * the servlet container restarts.
+ *
+ *
+ * @author Various
+ * @version $Version$
+ *
*/
-public class UnavailableException extends ServletException
-{
+public class UnavailableException
+extends ServletException {
- private Servlet servlet; // what's unavailable
+ private Servlet servlet; // what's unavailable
+ private boolean permanent; // needs admin action?
+ private int seconds; // unavailability estimate
- private boolean permanent; // needs admin action?
+ /**
+ *
+ * @deprecated As of Java Servlet API 2.2, use {@link
+ * #UnavailableException(String)} instead.
+ *
+ * @param servlet the <code>Servlet</code> instance that is
+ * unavailable
+ *
+ * @param msg a <code>String</code> specifying the
+ * descriptive message
+ *
+ */
- private int seconds; // unavailability estimate
+ public UnavailableException(Servlet servlet, String msg) {
+ super(msg);
+ this.servlet = servlet;
+ permanent = true;
+ }
+
+ /**
+ * @deprecated As of Java Servlet API 2.2, use {@link
+ * #UnavailableException(String, int)} instead.
+ *
+ * @param seconds an integer specifying the number of seconds
+ * the servlet expects to be unavailable; if
+ * zero or negative, indicates that the servlet
+ * can't make an estimate
+ *
+ * @param servlet the <code>Servlet</code> that is unavailable
+ *
+ * @param msg a <code>String</code> specifying the descriptive
+ * message, which can be written to a log file or
+ * displayed for the user.
+ *
+ */
+
+ public UnavailableException(int seconds, Servlet servlet, String msg) {
+ super(msg);
+ this.servlet = servlet;
+ if (seconds <= 0)
+ this.seconds = -1;
+ else
+ this.seconds = seconds;
+ permanent = false;
+ }
- /**
- * @deprecated As of Java Servlet API 2.2, use {@link
- * #UnavailableException(String)} instead.
- * @param servlet
- * the <code>Servlet</code> instance that is unavailable
- * @param msg
- * a <code>String</code> specifying the descriptive message
- */
- @Deprecated
- public UnavailableException(Servlet servlet, String msg)
- {
- super(msg);
- this.servlet = servlet;
- permanent = true;
- }
+ /**
+ *
+ * Constructs a new exception with a descriptive
+ * message indicating that the servlet is permanently
+ * unavailable.
+ *
+ * @param msg a <code>String</code> specifying the
+ * descriptive message
+ *
+ */
- /**
- * @deprecated As of Java Servlet API 2.2, use {@link
- * #UnavailableException(String, int)} instead.
- * @param seconds
- * an integer specifying the number of seconds the servlet expects
- * to be unavailable; if zero or negative, indicates that the
- * servlet can't make an estimate
- * @param servlet
- * the <code>Servlet</code> that is unavailable
- * @param msg
- * a <code>String</code> specifying the descriptive message,
- * which can be written to a log file or displayed for the user.
- */
- @Deprecated
- public UnavailableException(int seconds, Servlet servlet, String msg)
- {
- super(msg);
- this.servlet = servlet;
- if (seconds <= 0)
- this.seconds = -1;
- else
- this.seconds = seconds;
- permanent = false;
- }
+ public UnavailableException(String msg) {
+ super(msg);
- /**
- * Constructs a new exception with a descriptive message indicating that the
- * servlet is permanently unavailable.
- *
- * @param msg
- * a <code>String</code> specifying the descriptive message
- */
+ permanent = true;
+ }
- public UnavailableException(String msg)
- {
- super(msg);
+ /**
+ * Constructs a new exception with a descriptive message
+ * indicating that the servlet is temporarily unavailable
+ * and giving an estimate of how long it will be unavailable.
+ *
+ * <p>In some cases, the servlet cannot make an estimate. For
+ * example, the servlet might know that a server it needs is
+ * not running, but not be able to report how long it will take
+ * to be restored to functionality. This can be indicated with
+ * a negative or zero value for the <code>seconds</code> argument.
+ *
+ * @param msg a <code>String</code> specifying the
+ * descriptive message, which can be written
+ * to a log file or displayed for the user.
+ *
+ * @param seconds an integer specifying the number of seconds
+ * the servlet expects to be unavailable; if
+ * zero or negative, indicates that the servlet
+ * can't make an estimate
+ *
+ */
+
+ public UnavailableException(String msg, int seconds) {
+ super(msg);
- permanent = true;
- }
+ if (seconds <= 0)
+ this.seconds = -1;
+ else
+ this.seconds = seconds;
- /**
- * Constructs a new exception with a descriptive message indicating that the
- * servlet is temporarily unavailable and giving an estimate of how long it
- * will be unavailable.
- * <p>
- * In some cases, the servlet cannot make an estimate. For example, the
- * servlet might know that a server it needs is not running, but not be able
- * to report how long it will take to be restored to functionality. This can
- * be indicated with a negative or zero value for the <code>seconds</code>
- * argument.
- *
- * @param msg
- * a <code>String</code> specifying the descriptive message,
- * which can be written to a log file or displayed for the user.
- * @param seconds
- * an integer specifying the number of seconds the servlet expects
- * to be unavailable; if zero or negative, indicates that the
- * servlet can't make an estimate
- */
+ permanent = false;
+ }
- public UnavailableException(String msg, int seconds)
- {
- super(msg);
+ /**
+ *
+ * Returns a <code>boolean</code> indicating
+ * whether the servlet is permanently unavailable.
+ * If so, something is wrong with the servlet, and the
+ * system administrator must take some corrective action.
+ *
+ * @return <code>true</code> if the servlet is
+ * permanently unavailable; <code>false</code>
+ * if the servlet is available or temporarily
+ * unavailable
+ *
+ */
+
+ public boolean isPermanent() {
+ return permanent;
+ }
+
+ /**
+ * @deprecated As of Java Servlet API 2.2, with no replacement.
+ *
+ * Returns the servlet that is reporting its unavailability.
+ *
+ * @return the <code>Servlet</code> object that is
+ * throwing the <code>UnavailableException</code>
+ *
+ */
+
+ public Servlet getServlet() {
+ return servlet;
+ }
- if (seconds <= 0)
- this.seconds = -1;
- else
- this.seconds = seconds;
-
- permanent = false;
- }
-
- /**
- * Returns a <code>boolean</code> indicating whether the servlet is
- * permanently unavailable. If so, something is wrong with the servlet, and
- * the system administrator must take some corrective action.
- *
- * @return <code>true</code> if the servlet is permanently unavailable;
- * <code>false</code> if the servlet is available or temporarily
- * unavailable
- */
-
- public boolean isPermanent()
- {
- return permanent;
- }
-
- /**
- * @deprecated As of Java Servlet API 2.2, with no replacement. Returns the
- * servlet that is reporting its unavailability.
- * @return the <code>Servlet</code> object that is throwing the
- * <code>UnavailableException</code>
- */
- @Deprecated
- public Servlet getServlet()
- {
- return servlet;
- }
-
- /**
- * Returns the number of seconds the servlet expects to be temporarily
- * unavailable.
- * <p>
- * If this method returns a negative number, the servlet is permanently
- * unavailable or cannot provide an estimate of how long it will be
- * unavailable. No effort is made to correct for the time elapsed since the
- * exception was first reported.
- *
- * @return an integer specifying the number of seconds the servlet will be
- * temporarily unavailable, or a negative number if the servlet is
- * permanently unavailable or cannot make an estimate
- */
-
- public int getUnavailableSeconds()
- {
- return permanent ? -1 : seconds;
- }
+ /**
+ * Returns the number of seconds the servlet expects to
+ * be temporarily unavailable.
+ *
+ * <p>If this method returns a negative number, the servlet
+ * is permanently unavailable or cannot provide an estimate of
+ * how long it will be unavailable. No effort is
+ * made to correct for the time elapsed since the exception was
+ * first reported.
+ *
+ * @return an integer specifying the number of seconds
+ * the servlet will be temporarily unavailable,
+ * or a negative number if the servlet is permanently
+ * unavailable or cannot make an estimate
+ *
+ */
+
+ public int getUnavailableSeconds() {
+ return permanent ? -1 : seconds;
+ }
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/Cookie.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/Cookie.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/Cookie.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,437 +1,537 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet.http;
import java.text.MessageFormat;
import java.util.ResourceBundle;
/**
- * Creates a cookie, a small amount of information sent by a servlet to a Web
- * browser, saved by the browser, and later sent back to the server. A cookie's
- * value can uniquely identify a client, so cookies are commonly used for
- * session management.
- * <p>
- * A cookie has a name, a single value, and optional attributes such as a
- * comment, path and domain qualifiers, a maximum age, and a version number.
- * Some Web browsers have bugs in how they handle the optional attributes, so
- * use them sparingly to improve the interoperability of your servlets.
- * <p>
- * The servlet sends cookies to the browser by using the
- * {@link HttpServletResponse#addCookie} method, which adds fields to HTTP
- * response headers to send cookies to the browser, one at a time. The browser
- * is expected to support 20 cookies for each Web server, 300 cookies total, and
+ *
+ * Creates a cookie, a small amount of information sent by a servlet to
+ * a Web browser, saved by the browser, and later sent back to the server.
+ * A cookie's value can uniquely
+ * identify a client, so cookies are commonly used for session management.
+ *
+ * <p>A cookie has a name, a single value, and optional attributes
+ * such as a comment, path and domain qualifiers, a maximum age, and a
+ * version number. Some Web browsers have bugs in how they handle the
+ * optional attributes, so use them sparingly to improve the interoperability
+ * of your servlets.
+ *
+ * <p>The servlet sends cookies to the browser by using the
+ * {@link HttpServletResponse#addCookie} method, which adds
+ * fields to HTTP response headers to send cookies to the
+ * browser, one at a time. The browser is expected to
+ * support 20 cookies for each Web server, 300 cookies total, and
* may limit cookie size to 4 KB each.
- * <p>
- * The browser returns cookies to the servlet by adding fields to HTTP request
- * headers. Cookies can be retrieved from a request by using the
- * {@link HttpServletRequest#getCookies} method. Several cookies might have the
- * same name but different path attributes.
- * <p>
- * Cookies affect the caching of the Web pages that use them. HTTP 1.0 does not
- * cache pages that use cookies created with this class. This class does not
- * support the cache control defined with HTTP 1.1.
- * <p>
- * This class supports both the Version 0 (by Netscape) and Version 1 (by RFC
- * 2109) cookie specifications. By default, cookies are created using Version 0
- * to ensure the best interoperability.
*
- * @author Various
+ * <p>The browser returns cookies to the servlet by adding
+ * fields to HTTP request headers. Cookies can be retrieved
+ * from a request by using the {@link HttpServletRequest#getCookies} method.
+ * Several cookies might have the same name but different path attributes.
+ *
+ * <p>Cookies affect the caching of the Web pages that use them.
+ * HTTP 1.0 does not cache pages that use cookies created with
+ * this class. This class does not support the cache control
+ * defined with HTTP 1.1.
+ *
+ * <p>This class supports both the Version 0 (by Netscape) and Version 1
+ * (by RFC 2109) cookie specifications. By default, cookies are
+ * created using Version 0 to ensure the best interoperability.
+ *
+ *
+ * @author Various
+ * @version $Version$
+ *
*/
// XXX would implement java.io.Serializable too, but can't do that
// so long as sun.servlet.* must run on older JDK 1.02 JVMs which
// don't include that support.
-public class Cookie implements Cloneable
-{
- private static final String LSTRING_FILE = "javax.servlet.http.LocalStrings";
+public class Cookie implements Cloneable {
- private static ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE);
+ private static final String LSTRING_FILE =
+ "javax.servlet.http.LocalStrings";
+ private static ResourceBundle lStrings =
+ ResourceBundle.getBundle(LSTRING_FILE);
+
+ //
+ // The value of the cookie itself.
+ //
+
+ private String name; // NAME= ... "$Name" style is reserved
+ private String value; // value of NAME
- //
- // The value of the cookie itself.
- //
+ //
+ // Attributes encoded in the header's cookie fields.
+ //
+
+ private String comment; // ;Comment=VALUE ... describes cookie's use
+ // ;Discard ... implied by maxAge < 0
+ private String domain; // ;Domain=VALUE ... domain that sees cookie
+ private int maxAge = -1; // ;Max-Age=VALUE ... cookies auto-expire
+ private String path; // ;Path=VALUE ... URLs that see the cookie
+ private boolean secure; // ;Secure ... e.g. use SSL
+ private int version = 0; // ;Version=1 ... means RFC 2109++ style
+
+
- private String name; // NAME= ... "$Name" style is reserved
+ /**
+ * Constructs a cookie with a specified name and value.
+ *
+ * <p>The name must conform to RFC 2109. That means it can contain
+ * only ASCII alphanumeric characters and cannot contain commas,
+ * semicolons, or white space or begin with a $ character. The cookie's
+ * name cannot be changed after creation.
+ *
+ * <p>The value can be anything the server chooses to send. Its
+ * value is probably of interest only to the server. The cookie's
+ * value can be changed after creation with the
+ * <code>setValue</code> method.
+ *
+ * <p>By default, cookies are created according to the Netscape
+ * cookie specification. The version can be changed with the
+ * <code>setVersion</code> method.
+ *
+ *
+ * @param name a <code>String</code> specifying the name of the cookie
+ *
+ * @param value a <code>String</code> specifying the value of the cookie
+ *
+ * @throws IllegalArgumentException if the cookie name contains illegal characters
+ * (for example, a comma, space, or semicolon)
+ * or it is one of the tokens reserved for use
+ * by the cookie protocol
+ * @see #setValue
+ * @see #setVersion
+ *
+ */
- private String value; // value of NAME
+ public Cookie(String name, String value) {
+ if (!isToken(name)
+ || name.equalsIgnoreCase("Comment") // rfc2019
+ || name.equalsIgnoreCase("Discard") // 2019++
+ || name.equalsIgnoreCase("Domain")
+ || name.equalsIgnoreCase("Expires") // (old cookies)
+ || name.equalsIgnoreCase("Max-Age") // rfc2019
+ || name.equalsIgnoreCase("Path")
+ || name.equalsIgnoreCase("Secure")
+ || name.equalsIgnoreCase("Version")
+ || name.startsWith("$")
+ ) {
+ String errMsg = lStrings.getString("err.cookie_name_is_token");
+ Object[] errArgs = new Object[1];
+ errArgs[0] = name;
+ errMsg = MessageFormat.format(errMsg, errArgs);
+ throw new IllegalArgumentException(errMsg);
+ }
- //
- // Attributes encoded in the header's cookie fields.
- //
+ this.name = name;
+ this.value = value;
+ }
- private String comment; // ;Comment=VALUE ... describes cookie's use
- // ;Discard ... implied by maxAge < 0
- private String domain; // ;Domain=VALUE ... domain that sees cookie
- private int maxAge = -1; // ;Max-Age=VALUE ... cookies auto-expire
- private String path; // ;Path=VALUE ... URLs that see the cookie
- private boolean secure; // ;Secure ... e.g. use SSL
+ /**
+ *
+ * Specifies a comment that describes a cookie's purpose.
+ * The comment is useful if the browser presents the cookie
+ * to the user. Comments
+ * are not supported by Netscape Version 0 cookies.
+ *
+ * @param purpose a <code>String</code> specifying the comment
+ * to display to the user
+ *
+ * @see #getComment
+ *
+ */
- private int version = 0; // ;Version=1 ... means RFC 2109++ style
+ public void setComment(String purpose) {
+ comment = purpose;
+ }
+
+
+
- /**
- * Constructs a cookie with a specified name and value.
- * <p>
- * The name must conform to RFC 2109. That means it can contain only ASCII
- * alphanumeric characters and cannot contain commas, semicolons, or white
- * space or begin with a $ character. The cookie's name cannot be changed
- * after creation.
- * <p>
- * The value can be anything the server chooses to send. Its value is
- * probably of interest only to the server. The cookie's value can be changed
- * after creation with the <code>setValue</code> method.
- * <p>
- * By default, cookies are created according to the Netscape cookie
- * specification. The version can be changed with the <code>setVersion</code>
- * method.
- *
- * @param name
- * a <code>String</code> specifying the name of the cookie
- * @param value
- * a <code>String</code> specifying the value of the cookie
- * @throws IllegalArgumentException
- * if the cookie name contains illegal characters (for example, a
- * comma, space, or semicolon) or it is one of the tokens reserved
- * for use by the cookie protocol
- * @see #setValue
- * @see #setVersion
- */
+ /**
+ * Returns the comment describing the purpose of this cookie, or
+ * <code>null</code> if the cookie has no comment.
+ *
+ * @return a <code>String</code> containing the comment,
+ * or <code>null</code> if none
+ *
+ * @see #setComment
+ *
+ */
- public Cookie(String name, String value)
- {
- if (!isToken(name) || name.equalsIgnoreCase("Comment") // rfc2019
- || name.equalsIgnoreCase("Discard") // 2019++
- || name.equalsIgnoreCase("Domain") || name.equalsIgnoreCase("Expires") // (old
- // cookies)
- || name.equalsIgnoreCase("Max-Age") // rfc2019
- || name.equalsIgnoreCase("Path") || name.equalsIgnoreCase("Secure") || name.equalsIgnoreCase("Version") || name.startsWith("$"))
- {
- String errMsg = lStrings.getString("err.cookie_name_is_token");
- Object[] errArgs = new Object[1];
- errArgs[0] = name;
- errMsg = MessageFormat.format(errMsg, errArgs);
- throw new IllegalArgumentException(errMsg);
- }
+ public String getComment() {
+ return comment;
+ }
+
+
+
- this.name = name;
- this.value = value;
- }
- /**
- * Specifies a comment that describes a cookie's purpose. The comment is
- * useful if the browser presents the cookie to the user. Comments are not
- * supported by Netscape Version 0 cookies.
- *
- * @param purpose
- * a <code>String</code> specifying the comment to display to the
- * user
- * @see #getComment
- */
+ /**
+ *
+ * Specifies the domain within which this cookie should be presented.
+ *
+ * <p>The form of the domain name is specified by RFC 2109. A domain
+ * name begins with a dot (<code>.foo.com</code>) and means that
+ * the cookie is visible to servers in a specified Domain Name System
+ * (DNS) zone (for example, <code>www.foo.com</code>, but not
+ * <code>a.b.foo.com</code>). By default, cookies are only returned
+ * to the server that sent them.
+ *
+ *
+ * @param pattern a <code>String</code> containing the domain name
+ * within which this cookie is visible;
+ * form is according to RFC 2109
+ *
+ * @see #getDomain
+ *
+ */
- public void setComment(String purpose)
- {
- comment = purpose;
- }
+ public void setDomain(String pattern) {
+ domain = pattern.toLowerCase(); // IE allegedly needs this
+ }
+
+
+
+
- /**
- * Returns the comment describing the purpose of this cookie, or
- * <code>null</code> if the cookie has no comment.
- *
- * @return a <code>String</code> containing the comment, or
- * <code>null</code> if none
- * @see #setComment
- */
+ /**
+ * Returns the domain name set for this cookie. The form of
+ * the domain name is set by RFC 2109.
+ *
+ * @return a <code>String</code> containing the domain name
+ *
+ * @see #setDomain
+ *
+ */
- public String getComment()
- {
- return comment;
- }
+ public String getDomain() {
+ return domain;
+ }
- /**
- * Specifies the domain within which this cookie should be presented.
- * <p>
- * The form of the domain name is specified by RFC 2109. A domain name begins
- * with a dot (<code>.foo.com</code>) and means that the cookie is
- * visible to servers in a specified Domain Name System (DNS) zone (for
- * example, <code>www.foo.com</code>, but not <code>a.b.foo.com</code>).
- * By default, cookies are only returned to the server that sent them.
- *
- * @param pattern
- * a <code>String</code> containing the domain name within which
- * this cookie is visible; form is according to RFC 2109
- * @see #getDomain
- */
- public void setDomain(String pattern)
- {
- domain = pattern.toLowerCase(); // IE allegedly needs this
- }
- /**
- * Returns the domain name set for this cookie. The form of the domain name
- * is set by RFC 2109.
- *
- * @return a <code>String</code> containing the domain name
- * @see #setDomain
- */
- public String getDomain()
- {
- return domain;
- }
+ /**
+ * Sets the maximum age of the cookie in seconds.
+ *
+ * <p>A positive value indicates that the cookie will expire
+ * after that many seconds have passed. Note that the value is
+ * the <i>maximum</i> age when the cookie will expire, not the cookie's
+ * current age.
+ *
+ * <p>A negative value means
+ * that the cookie is not stored persistently and will be deleted
+ * when the Web browser exits. A zero value causes the cookie
+ * to be deleted.
+ *
+ * @param expiry an integer specifying the maximum age of the
+ * cookie in seconds; if negative, means
+ * the cookie is not stored; if zero, deletes
+ * the cookie
+ *
+ *
+ * @see #getMaxAge
+ *
+ */
- /**
- * Sets the maximum age of the cookie in seconds.
- * <p>
- * A positive value indicates that the cookie will expire after that many
- * seconds have passed. Note that the value is the <i>maximum</i> age when
- * the cookie will expire, not the cookie's current age.
- * <p>
- * A negative value means that the cookie is not stored persistently and will
- * be deleted when the Web browser exits. A zero value causes the cookie to
- * be deleted.
- *
- * @param expiry
- * an integer specifying the maximum age of the cookie in seconds;
- * if negative, means the cookie is not stored; if zero, deletes
- * the cookie
- * @see #getMaxAge
- */
+ public void setMaxAge(int expiry) {
+ maxAge = expiry;
+ }
- public void setMaxAge(int expiry)
- {
- maxAge = expiry;
- }
- /**
- * Returns the maximum age of the cookie, specified in seconds, By default,
- * <code>-1</code> indicating the cookie will persist until browser
- * shutdown.
- *
- * @return an integer specifying the maximum age of the cookie in seconds; if
- * negative, means the cookie persists until browser shutdown
- * @see #setMaxAge
- */
- public int getMaxAge()
- {
- return maxAge;
- }
- /**
- * Specifies a path for the cookie to which the client should return the
- * cookie.
- * <p>
- * The cookie is visible to all the pages in the directory you specify, and
- * all the pages in that directory's subdirectories. A cookie's path must
- * include the servlet that set the cookie, for example, <i>/catalog</i>,
- * which makes the cookie visible to all directories on the server under
- * <i>/catalog</i>.
- * <p>
- * Consult RFC 2109 (available on the Internet) for more information on
- * setting path names for cookies.
- *
- * @param uri
- * a <code>String</code> specifying a path
- * @see #getPath
- */
+ /**
+ * Returns the maximum age of the cookie, specified in seconds,
+ * By default, <code>-1</code> indicating the cookie will persist
+ * until browser shutdown.
+ *
+ *
+ * @return an integer specifying the maximum age of the
+ * cookie in seconds; if negative, means
+ * the cookie persists until browser shutdown
+ *
+ *
+ * @see #setMaxAge
+ *
+ */
- public void setPath(String uri)
- {
- path = uri;
- }
+ public int getMaxAge() {
+ return maxAge;
+ }
+
+
+
- /**
- * Returns the path on the server to which the browser returns this cookie.
- * The cookie is visible to all subpaths on the server.
- *
- * @return a <code>String</code> specifying a path that contains a servlet
- * name, for example, <i>/catalog</i>
- * @see #setPath
- */
+ /**
+ * Specifies a path for the cookie
+ * to which the client should return the cookie.
+ *
+ * <p>The cookie is visible to all the pages in the directory
+ * you specify, and all the pages in that directory's subdirectories.
+ * A cookie's path must include the servlet that set the cookie,
+ * for example, <i>/catalog</i>, which makes the cookie
+ * visible to all directories on the server under <i>/catalog</i>.
+ *
+ * <p>Consult RFC 2109 (available on the Internet) for more
+ * information on setting path names for cookies.
+ *
+ *
+ * @param uri a <code>String</code> specifying a path
+ *
+ *
+ * @see #getPath
+ *
+ */
- public String getPath()
- {
- return path;
- }
+ public void setPath(String uri) {
+ path = uri;
+ }
- /**
- * Indicates to the browser whether the cookie should only be sent using a
- * secure protocol, such as HTTPS or SSL.
- * <p>
- * The default value is <code>false</code>.
- *
- * @param flag
- * if <code>true</code>, sends the cookie from the browser to
- * the server only when using a secure protocol; if
- * <code>false</code>, sent on any protocol
- * @see #getSecure
- */
- public void setSecure(boolean flag)
- {
- secure = flag;
- }
- /**
- * Returns <code>true</code> if the browser is sending cookies only over a
- * secure protocol, or <code>false</code> if the browser can send cookies
- * using any protocol.
- *
- * @return <code>true</code> if the browser uses a secure protocol;
- * otherwise, <code>true</code>
- * @see #setSecure
- */
- public boolean getSecure()
- {
- return secure;
- }
+ /**
+ * Returns the path on the server
+ * to which the browser returns this cookie. The
+ * cookie is visible to all subpaths on the server.
+ *
+ *
+ * @return a <code>String</code> specifying a path that contains
+ * a servlet name, for example, <i>/catalog</i>
+ *
+ * @see #setPath
+ *
+ */
- /**
- * Returns the name of the cookie. The name cannot be changed after creation.
- *
- * @return a <code>String</code> specifying the cookie's name
- */
+ public String getPath() {
+ return path;
+ }
- public String getName()
- {
- return name;
- }
- /**
- * Assigns a new value to a cookie after the cookie is created. If you use a
- * binary value, you may want to use BASE64 encoding.
- * <p>
- * With Version 0 cookies, values should not contain white space, brackets,
- * parentheses, equals signs, commas, double quotes, slashes, question marks,
- * at signs, colons, and semicolons. Empty values may not behave the same way
- * on all browsers.
- *
- * @param newValue
- * a <code>String</code> specifying the new value
- * @see #getValue
- * @see Cookie
- */
- public void setValue(String newValue)
- {
- value = newValue;
- }
- /**
- * Returns the value of the cookie.
- *
- * @return a <code>String</code> containing the cookie's present value
- * @see #setValue
- * @see Cookie
- */
- public String getValue()
- {
- return value;
- }
+ /**
+ * Indicates to the browser whether the cookie should only be sent
+ * using a secure protocol, such as HTTPS or SSL.
+ *
+ * <p>The default value is <code>false</code>.
+ *
+ * @param flag if <code>true</code>, sends the cookie from the browser
+ * to the server only when using a secure protocol;
+ * if <code>false</code>, sent on any protocol
+ *
+ * @see #getSecure
+ *
+ */
+
+ public void setSecure(boolean flag) {
+ secure = flag;
+ }
- /**
- * Returns the version of the protocol this cookie complies with. Version 1
- * complies with RFC 2109, and version 0 complies with the original cookie
- * specification drafted by Netscape. Cookies provided by a browser use and
- * identify the browser's cookie version.
- *
- * @return 0 if the cookie complies with the original Netscape specification;
- * 1 if the cookie complies with RFC 2109
- * @see #setVersion
- */
- public int getVersion()
- {
- return version;
- }
- /**
- * Sets the version of the cookie protocol this cookie complies with. Version
- * 0 complies with the original Netscape cookie specification. Version 1
- * complies with RFC 2109.
- * <p>
- * Since RFC 2109 is still somewhat new, consider version 1 as experimental;
- * do not use it yet on production sites.
- *
- * @param v
- * 0 if the cookie should comply with the original Netscape
- * specification; 1 if the cookie should comply with RFC 2109
- * @see #getVersion
- */
- public void setVersion(int v)
- {
- version = v;
- }
+ /**
+ * Returns <code>true</code> if the browser is sending cookies
+ * only over a secure protocol, or <code>false</code> if the
+ * browser can send cookies using any protocol.
+ *
+ * @return <code>true</code> if the browser uses a secure protocol;
+ * otherwise, <code>true</code>
+ *
+ * @see #setSecure
+ *
+ */
- // Note -- disabled for now to allow full Netscape compatibility
- // from RFC 2068, token special case characters
- //
- // private static final String tspecials = "()<>@,;:\\\"/[]?={} \t";
+ public boolean getSecure() {
+ return secure;
+ }
- private static final String tspecials = ",; ";
- /*
- * Tests a string and returns true if the string counts as a reserved token
- * in the Java language. @param value the <code>String</code> to be tested
- * @return <code>true</code> if the <code>String</code> is a reserved
- * token; <code>false</code> if it is not
- */
- private boolean isToken(String value)
- {
- int len = value.length();
- for (int i = 0; i < len; i++)
- {
- char c = value.charAt(i);
- if (c < 0x20 || c >= 0x7f || tspecials.indexOf(c) != -1)
- return false;
- }
- return true;
- }
+ /**
+ * Returns the name of the cookie. The name cannot be changed after
+ * creation.
+ *
+ * @return a <code>String</code> specifying the cookie's name
+ *
+ */
- /**
- * Overrides the standard <code>java.lang.Object.clone</code> method to
- * return a copy of this cookie.
- */
+ public String getName() {
+ return name;
+ }
- public Object clone()
- {
- try
- {
- return super.clone();
- }
- catch (CloneNotSupportedException e)
- {
- throw new RuntimeException(e.getMessage());
- }
- }
+
+
+
+
+ /**
+ *
+ * Assigns a new value to a cookie after the cookie is created.
+ * If you use a binary value, you may want to use BASE64 encoding.
+ *
+ * <p>With Version 0 cookies, values should not contain white
+ * space, brackets, parentheses, equals signs, commas,
+ * double quotes, slashes, question marks, at signs, colons,
+ * and semicolons. Empty values may not behave the same way
+ * on all browsers.
+ *
+ * @param newValue a <code>String</code> specifying the new value
+ *
+ *
+ * @see #getValue
+ * @see Cookie
+ *
+ */
+
+ public void setValue(String newValue) {
+ value = newValue;
+ }
+
+
+
+
+ /**
+ * Returns the value of the cookie.
+ *
+ * @return a <code>String</code> containing the cookie's
+ * present value
+ *
+ * @see #setValue
+ * @see Cookie
+ *
+ */
+
+ public String getValue() {
+ return value;
+ }
+
+
+
+
+ /**
+ * Returns the version of the protocol this cookie complies
+ * with. Version 1 complies with RFC 2109,
+ * and version 0 complies with the original
+ * cookie specification drafted by Netscape. Cookies provided
+ * by a browser use and identify the browser's cookie version.
+ *
+ *
+ * @return 0 if the cookie complies with the
+ * original Netscape specification; 1
+ * if the cookie complies with RFC 2109
+ *
+ * @see #setVersion
+ *
+ */
+
+ public int getVersion() {
+ return version;
+ }
+
+
+
+
+ /**
+ * Sets the version of the cookie protocol this cookie complies
+ * with. Version 0 complies with the original Netscape cookie
+ * specification. Version 1 complies with RFC 2109.
+ *
+ * <p>Since RFC 2109 is still somewhat new, consider
+ * version 1 as experimental; do not use it yet on production sites.
+ *
+ *
+ * @param v 0 if the cookie should comply with
+ * the original Netscape specification;
+ * 1 if the cookie should comply with RFC 2109
+ *
+ * @see #getVersion
+ *
+ */
+
+ public void setVersion(int v) {
+ version = v;
+ }
+
+ // Note -- disabled for now to allow full Netscape compatibility
+ // from RFC 2068, token special case characters
+ //
+ // private static final String tspecials = "()<>@,;:\\\"/[]?={} \t";
+
+ private static final String tspecials = ",; ";
+
+
+
+
+ /*
+ * Tests a string and returns true if the string counts as a
+ * reserved token in the Java language.
+ *
+ * @param value the <code>String</code> to be tested
+ *
+ * @return <code>true</code> if the <code>String</code> is
+ * a reserved token; <code>false</code>
+ * if it is not
+ */
+
+ private boolean isToken(String value) {
+ int len = value.length();
+
+ for (int i = 0; i < len; i++) {
+ char c = value.charAt(i);
+
+ if (c < 0x20 || c >= 0x7f || tspecials.indexOf(c) != -1)
+ return false;
+ }
+ return true;
+ }
+
+
+
+
+
+
+ /**
+ *
+ * Overrides the standard <code>java.lang.Object.clone</code>
+ * method to return a copy of this cookie.
+ *
+ *
+ */
+
+ public Object clone() {
+ try {
+ return super.clone();
+ } catch (CloneNotSupportedException e) {
+ throw new RuntimeException(e.getMessage());
+ }
+ }
}
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServlet.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServlet.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServlet.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,24 +1,19 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet.http;
import java.io.IOException;
@@ -37,924 +32,988 @@
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
+
/**
- * Provides an abstract class to be subclassed to create an HTTP servlet
- * suitable for a Web site. A subclass of <code>HttpServlet</code> must
- * override at least one method, usually one of these:
+ *
+ * Provides an abstract class to be subclassed to create
+ * an HTTP servlet suitable for a Web site. A subclass of
+ * <code>HttpServlet</code> must override at least
+ * one method, usually one of these:
+ *
* <ul>
* <li> <code>doGet</code>, if the servlet supports HTTP GET requests
* <li> <code>doPost</code>, for HTTP POST requests
* <li> <code>doPut</code>, for HTTP PUT requests
* <li> <code>doDelete</code>, for HTTP DELETE requests
- * <li> <code>init</code> and <code>destroy</code>, to manage resources
- * that are held for the life of the servlet
- * <li> <code>getServletInfo</code>, which the servlet uses to provide
- * information about itself
+ * <li> <code>init</code> and <code>destroy</code>,
+ * to manage resources that are held for the life of the servlet
+ * <li> <code>getServletInfo</code>, which the servlet uses to
+ * provide information about itself
* </ul>
- * <p>
- * There's almost no reason to override the <code>service</code> method.
- * <code>service</code> handles standard HTTP requests by dispatching them to
- * the handler methods for each HTTP request type (the <code>do</code><i>XXX</i>
+ *
+ * <p>There's almost no reason to override the <code>service</code>
+ * method. <code>service</code> handles standard HTTP
+ * requests by dispatching them to the handler methods
+ * for each HTTP request type (the <code>do</code><i>XXX</i>
* methods listed above).
- * <p>
- * Likewise, there's almost no reason to override the <code>doOptions</code>
- * and <code>doTrace</code> methods.
- * <p>
- * Servlets typically run on multithreaded servers, so be aware that a servlet
- * must handle concurrent requests and be careful to synchronize access to
- * shared resources. Shared resources include in-memory data such as instance or
- * class variables and external objects such as files, database connections, and
- * network connections. See the <a
- * href="http://java.sun.com/Series/Tutorial/java/threads/multithreaded.html">
- * Java Tutorial on Multithreaded Programming</a> for more information on
- * handling multiple threads in a Java program.
+ *
+ * <p>Likewise, there's almost no reason to override the
+ * <code>doOptions</code> and <code>doTrace</code> methods.
*
- * @author Various
+ * <p>Servlets typically run on multithreaded servers,
+ * so be aware that a servlet must handle concurrent
+ * requests and be careful to synchronize access to shared resources.
+ * Shared resources include in-memory data such as
+ * instance or class variables and external objects
+ * such as files, database connections, and network
+ * connections.
+ * See the
+ * <a href="http://java.sun.com/Series/Tutorial/java/threads/multithreaded.html">
+ * Java Tutorial on Multithreaded Programming</a> for more
+ * information on handling multiple threads in a Java program.
+ *
+ * @author Various
+ * @version $Version$
+ *
*/
-public abstract class HttpServlet extends GenericServlet implements java.io.Serializable
-{
- private static final String METHOD_DELETE = "DELETE";
- private static final String METHOD_HEAD = "HEAD";
- private static final String METHOD_GET = "GET";
+public abstract class HttpServlet extends GenericServlet
+ implements java.io.Serializable
+{
+ private static final String METHOD_DELETE = "DELETE";
+ private static final String METHOD_HEAD = "HEAD";
+ private static final String METHOD_GET = "GET";
+ private static final String METHOD_OPTIONS = "OPTIONS";
+ private static final String METHOD_POST = "POST";
+ private static final String METHOD_PUT = "PUT";
+ private static final String METHOD_TRACE = "TRACE";
- private static final String METHOD_OPTIONS = "OPTIONS";
+ private static final String HEADER_IFMODSINCE = "If-Modified-Since";
+ private static final String HEADER_LASTMOD = "Last-Modified";
+
+ private static final String LSTRING_FILE =
+ "javax.servlet.http.LocalStrings";
+ private static ResourceBundle lStrings =
+ ResourceBundle.getBundle(LSTRING_FILE);
+
+
+
+
+ /**
+ * Does nothing, because this is an abstract class.
+ *
+ */
- private static final String METHOD_POST = "POST";
+ public HttpServlet() { }
+
+
- private static final String METHOD_PUT = "PUT";
+ /**
+ *
+ * Called by the server (via the <code>service</code> method) to
+ * allow a servlet to handle a GET request.
+ *
+ * <p>Overriding this method to support a GET request also
+ * automatically supports an HTTP HEAD request. A HEAD
+ * request is a GET request that returns no body in the
+ * response, only the request header fields.
+ *
+ * <p>When overriding this method, read the request data,
+ * write the response headers, get the response's writer or
+ * output stream object, and finally, write the response data.
+ * It's best to include content type and encoding. When using
+ * a <code>PrintWriter</code> object to return the response,
+ * set the content type before accessing the
+ * <code>PrintWriter</code> object.
+ *
+ * <p>The servlet container must write the headers before
+ * committing the response, because in HTTP the headers must be sent
+ * before the response body.
+ *
+ * <p>Where possible, set the Content-Length header (with the
+ * {@link javax.servlet.ServletResponse#setContentLength} method),
+ * to allow the servlet container to use a persistent connection
+ * to return its response to the client, improving performance.
+ * The content length is automatically set if the entire response fits
+ * inside the response buffer.
+ *
+ * <p>When using HTTP 1.1 chunked encoding (which means that the response
+ * has a Transfer-Encoding header), do not set the Content-Length header.
+ *
+ * <p>The GET method should be safe, that is, without
+ * any side effects for which users are held responsible.
+ * For example, most form queries have no side effects.
+ * If a client request is intended to change stored data,
+ * the request should use some other HTTP method.
+ *
+ * <p>The GET method should also be idempotent, meaning
+ * that it can be safely repeated. Sometimes making a
+ * method safe also makes it idempotent. For example,
+ * repeating queries is both safe and idempotent, but
+ * buying a product online or modifying data is neither
+ * safe nor idempotent.
+ *
+ * <p>If the request is incorrectly formatted, <code>doGet</code>
+ * returns an HTTP "Bad Request" message.
+ *
+ *
+ * @param req an {@link HttpServletRequest} object that
+ * contains the request the client has made
+ * of the servlet
+ *
+ * @param resp an {@link HttpServletResponse} object that
+ * contains the response the servlet sends
+ * to the client
+ *
+ * @exception IOException if an input or output error is
+ * detected when the servlet handles
+ * the GET request
+ *
+ * @exception ServletException if the request for the GET
+ * could not be handled
+ *
+ *
+ * @see javax.servlet.ServletResponse#setContentType
+ *
+ */
- private static final String METHOD_TRACE = "TRACE";
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ String protocol = req.getProtocol();
+ String msg = lStrings.getString("http.method_get_not_supported");
+ if (protocol.endsWith("1.1")) {
+ resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
+ } else {
+ resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
+ }
+ }
- private static final String HEADER_IFMODSINCE = "If-Modified-Since";
- private static final String HEADER_LASTMOD = "Last-Modified";
- private static final String LSTRING_FILE = "javax.servlet.http.LocalStrings";
- private static ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE);
- /**
- * Does nothing, because this is an abstract class.
- */
+ /**
+ *
+ * Returns the time the <code>HttpServletRequest</code>
+ * object was last modified,
+ * in milliseconds since midnight January 1, 1970 GMT.
+ * If the time is unknown, this method returns a negative
+ * number (the default).
+ *
+ * <p>Servlets that support HTTP GET requests and can quickly determine
+ * their last modification time should override this method.
+ * This makes browser and proxy caches work more effectively,
+ * reducing the load on server and network resources.
+ *
+ *
+ * @param req the <code>HttpServletRequest</code>
+ * object that is sent to the servlet
+ *
+ * @return a <code>long</code> integer specifying
+ * the time the <code>HttpServletRequest</code>
+ * object was last modified, in milliseconds
+ * since midnight, January 1, 1970 GMT, or
+ * -1 if the time is not known
+ *
+ */
- public HttpServlet()
- {
- }
+ protected long getLastModified(HttpServletRequest req) {
+ return -1;
+ }
- /**
- * Called by the server (via the <code>service</code> method) to allow a
- * servlet to handle a GET request.
- * <p>
- * Overriding this method to support a GET request also automatically
- * supports an HTTP HEAD request. A HEAD request is a GET request that
- * returns no body in the response, only the request header fields.
- * <p>
- * When overriding this method, read the request data, write the response
- * headers, get the response's writer or output stream object, and finally,
- * write the response data. It's best to include content type and encoding.
- * When using a <code>PrintWriter</code> object to return the response, set
- * the content type before accessing the <code>PrintWriter</code> object.
- * <p>
- * The servlet container must write the headers before committing the
- * response, because in HTTP the headers must be sent before the response
- * body.
- * <p>
- * Where possible, set the Content-Length header (with the
- * {@link javax.servlet.ServletResponse#setContentLength} method), to allow
- * the servlet container to use a persistent connection to return its
- * response to the client, improving performance. The content length is
- * automatically set if the entire response fits inside the response buffer.
- * <p>
- * When using HTTP 1.1 chunked encoding (which means that the response has a
- * Transfer-Encoding header), do not set the Content-Length header.
- * <p>
- * The GET method should be safe, that is, without any side effects for which
- * users are held responsible. For example, most form queries have no side
- * effects. If a client request is intended to change stored data, the
- * request should use some other HTTP method.
- * <p>
- * The GET method should also be idempotent, meaning that it can be safely
- * repeated. Sometimes making a method safe also makes it idempotent. For
- * example, repeating queries is both safe and idempotent, but buying a
- * product online or modifying data is neither safe nor idempotent.
- * <p>
- * If the request is incorrectly formatted, <code>doGet</code> returns an
- * HTTP "Bad Request" message.
- *
- * @param req
- * an {@link HttpServletRequest} object that contains the request
- * the client has made of the servlet
- * @param resp
- * an {@link HttpServletResponse} object that contains the response
- * the servlet sends to the client
- * @exception IOException
- * if an input or output error is detected when the servlet
- * handles the GET request
- * @exception ServletException
- * if the request for the GET could not be handled
- * @see javax.servlet.ServletResponse#setContentType
- */
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
- {
- String protocol = req.getProtocol();
- String msg = lStrings.getString("http.method_get_not_supported");
- if (protocol.endsWith("1.1"))
- {
- resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
- }
- else
- {
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
- }
- }
- /**
- * Returns the time the <code>HttpServletRequest</code> object was last
- * modified, in milliseconds since midnight January 1, 1970 GMT. If the time
- * is unknown, this method returns a negative number (the default).
- * <p>
- * Servlets that support HTTP GET requests and can quickly determine their
- * last modification time should override this method. This makes browser and
- * proxy caches work more effectively, reducing the load on server and
- * network resources.
- *
- * @param req
- * the <code>HttpServletRequest</code> object that is sent to the
- * servlet
- * @return a <code>long</code> integer specifying the time the
- * <code>HttpServletRequest</code> object was last modified, in
- * milliseconds since midnight, January 1, 1970 GMT, or -1 if the
- * time is not known
- */
- protected long getLastModified(HttpServletRequest req)
- {
- return -1;
- }
+ /**
+ *
+ *
+ * <p>Receives an HTTP HEAD request from the protected
+ * <code>service</code> method and handles the
+ * request.
+ * The client sends a HEAD request when it wants
+ * to see only the headers of a response, such as
+ * Content-Type or Content-Length. The HTTP HEAD
+ * method counts the output bytes in the response
+ * to set the Content-Length header accurately.
+ *
+ * <p>If you override this method, you can avoid computing
+ * the response body and just set the response headers
+ * directly to improve performance. Make sure that the
+ * <code>doHead</code> method you write is both safe
+ * and idempotent (that is, protects itself from being
+ * called multiple times for one HTTP HEAD request).
+ *
+ * <p>If the HTTP HEAD request is incorrectly formatted,
+ * <code>doHead</code> returns an HTTP "Bad Request"
+ * message.
+ *
+ *
+ * @param req the request object that is passed
+ * to the servlet
+ *
+ * @param resp the response object that the servlet
+ * uses to return the headers to the clien
+ *
+ * @exception IOException if an input or output error occurs
+ *
+ * @exception ServletException if the request for the HEAD
+ * could not be handled
+ */
- /**
- * <p>
- * Receives an HTTP HEAD request from the protected <code>service</code>
- * method and handles the request. The client sends a HEAD request when it
- * wants to see only the headers of a response, such as Content-Type or
- * Content-Length. The HTTP HEAD method counts the output bytes in the
- * response to set the Content-Length header accurately.
- * <p>
- * If you override this method, you can avoid computing the response body and
- * just set the response headers directly to improve performance. Make sure
- * that the <code>doHead</code> method you write is both safe and
- * idempotent (that is, protects itself from being called multiple times for
- * one HTTP HEAD request).
- * <p>
- * If the HTTP HEAD request is incorrectly formatted, <code>doHead</code>
- * returns an HTTP "Bad Request" message.
- *
- * @param req
- * the request object that is passed to the servlet
- * @param resp
- * the response object that the servlet uses to return the headers
- * to the clien
- * @exception IOException
- * if an input or output error occurs
- * @exception ServletException
- * if the request for the HEAD could not be handled
- */
+ protected void doHead(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ NoBodyResponse response = new NoBodyResponse(resp);
+
+ doGet(req, response);
+ response.setContentLength();
+ }
+
- protected void doHead(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
- {
- NoBodyResponse response = new NoBodyResponse(resp);
- doGet(req, response);
- response.setContentLength();
- }
- /**
- * Called by the server (via the <code>service</code> method) to allow a
- * servlet to handle a POST request. The HTTP POST method allows the client
- * to send data of unlimited length to the Web server a single time and is
- * useful when posting information such as credit card numbers.
- * <p>
- * When overriding this method, read the request data, write the response
- * headers, get the response's writer or output stream object, and finally,
- * write the response data. It's best to include content type and encoding.
- * When using a <code>PrintWriter</code> object to return the response, set
- * the content type before accessing the <code>PrintWriter</code> object.
- * <p>
- * The servlet container must write the headers before committing the
- * response, because in HTTP the headers must be sent before the response
- * body.
- * <p>
- * Where possible, set the Content-Length header (with the
- * {@link javax.servlet.ServletResponse#setContentLength} method), to allow
- * the servlet container to use a persistent connection to return its
- * response to the client, improving performance. The content length is
- * automatically set if the entire response fits inside the response buffer.
- * <p>
- * When using HTTP 1.1 chunked encoding (which means that the response has a
- * Transfer-Encoding header), do not set the Content-Length header.
- * <p>
- * This method does not need to be either safe or idempotent. Operations
- * requested through POST can have side effects for which the user can be
- * held accountable, for example, updating stored data or buying items
- * online.
- * <p>
- * If the HTTP POST request is incorrectly formatted, <code>doPost</code>
- * returns an HTTP "Bad Request" message.
- *
- * @param req
- * an {@link HttpServletRequest} object that contains the request
- * the client has made of the servlet
- * @param resp
- * an {@link HttpServletResponse} object that contains the response
- * the servlet sends to the client
- * @exception IOException
- * if an input or output error is detected when the servlet
- * handles the request
- * @exception ServletException
- * if the request for the POST could not be handled
- * @see javax.servlet.ServletOutputStream
- * @see javax.servlet.ServletResponse#setContentType
- */
- protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
- {
- String protocol = req.getProtocol();
- String msg = lStrings.getString("http.method_post_not_supported");
- if (protocol.endsWith("1.1"))
- {
- resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
- }
- else
- {
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
- }
- }
+ /**
+ *
+ * Called by the server (via the <code>service</code> method)
+ * to allow a servlet to handle a POST request.
+ *
+ * The HTTP POST method allows the client to send
+ * data of unlimited length to the Web server a single time
+ * and is useful when posting information such as
+ * credit card numbers.
+ *
+ * <p>When overriding this method, read the request data,
+ * write the response headers, get the response's writer or output
+ * stream object, and finally, write the response data. It's best
+ * to include content type and encoding. When using a
+ * <code>PrintWriter</code> object to return the response, set the
+ * content type before accessing the <code>PrintWriter</code> object.
+ *
+ * <p>The servlet container must write the headers before committing the
+ * response, because in HTTP the headers must be sent before the
+ * response body.
+ *
+ * <p>Where possible, set the Content-Length header (with the
+ * {@link javax.servlet.ServletResponse#setContentLength} method),
+ * to allow the servlet container to use a persistent connection
+ * to return its response to the client, improving performance.
+ * The content length is automatically set if the entire response fits
+ * inside the response buffer.
+ *
+ * <p>When using HTTP 1.1 chunked encoding (which means that the response
+ * has a Transfer-Encoding header), do not set the Content-Length header.
+ *
+ * <p>This method does not need to be either safe or idempotent.
+ * Operations requested through POST can have side effects for
+ * which the user can be held accountable, for example,
+ * updating stored data or buying items online.
+ *
+ * <p>If the HTTP POST request is incorrectly formatted,
+ * <code>doPost</code> returns an HTTP "Bad Request" message.
+ *
+ *
+ * @param req an {@link HttpServletRequest} object that
+ * contains the request the client has made
+ * of the servlet
+ *
+ * @param resp an {@link HttpServletResponse} object that
+ * contains the response the servlet sends
+ * to the client
+ *
+ * @exception IOException if an input or output error is
+ * detected when the servlet handles
+ * the request
+ *
+ * @exception ServletException if the request for the POST
+ * could not be handled
+ *
+ *
+ * @see javax.servlet.ServletOutputStream
+ * @see javax.servlet.ServletResponse#setContentType
+ *
+ *
+ */
- /**
- * Called by the server (via the <code>service</code> method) to allow a
- * servlet to handle a PUT request. The PUT operation allows a client to
- * place a file on the server and is similar to sending a file by FTP.
- * <p>
- * When overriding this method, leave intact any content headers sent with
- * the request (including Content-Length, Content-Type,
- * Content-Transfer-Encoding, Content-Encoding, Content-Base,
- * Content-Language, Content-Location, 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 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 effects for which the user can
- * be held accountable. When using this method, it may be useful to save a
- * copy of the affected URL in temporary storage.
- * <p>
- * If the HTTP PUT request is incorrectly formatted, <code>doPut</code>
- * returns an HTTP "Bad Request" message.
- *
- * @param req
- * the {@link HttpServletRequest} object that contains the request
- * the client made of the servlet
- * @param resp
- * the {@link HttpServletResponse} object that contains the
- * response the servlet returns to the client
- * @exception IOException
- * if an input or output error occurs while the servlet is
- * handling the PUT request
- * @exception ServletException
- * if the request for the PUT cannot be handled
- */
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ String protocol = req.getProtocol();
+ String msg = lStrings.getString("http.method_post_not_supported");
+ if (protocol.endsWith("1.1")) {
+ resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
+ } else {
+ resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
+ }
+ }
- protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
- {
- String protocol = req.getProtocol();
- String msg = lStrings.getString("http.method_put_not_supported");
- if (protocol.endsWith("1.1"))
- {
- resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
- }
- else
- {
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
- }
- }
- /**
- * Called by the server (via the <code>service</code> method) to allow a
- * servlet to handle a DELETE request. The DELETE operation allows a client
- * to remove a document or Web page from the server.
- * <p>
- * This method does not need to be either safe or idempotent. Operations
- * requested through DELETE can have side effects for which users can be held
- * accountable. When using this method, it may be useful to save a copy of
- * the affected URL in temporary storage.
- * <p>
- * If the HTTP DELETE request is incorrectly formatted, <code>doDelete</code>
- * returns an HTTP "Bad Request" message.
- *
- * @param req
- * the {@link HttpServletRequest} object that contains the request
- * the client made of the servlet
- * @param resp
- * the {@link HttpServletResponse} object that contains the
- * response the servlet returns to the client
- * @exception IOException
- * if an input or output error occurs while the servlet is
- * handling the DELETE request
- * @exception ServletException
- * if the request for the DELETE cannot be handled
- */
- protected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
- {
- String protocol = req.getProtocol();
- String msg = lStrings.getString("http.method_delete_not_supported");
- if (protocol.endsWith("1.1"))
- {
- resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
- }
- else
- {
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
- }
- }
- private Method[] getAllDeclaredMethods(Class c)
- {
+ /**
+ * Called by the server (via the <code>service</code> method)
+ * to allow a servlet to handle a PUT request.
+ *
+ * The PUT operation allows a client to
+ * place a file on the server and is similar to
+ * sending a file by FTP.
+ *
+ * <p>When overriding this method, leave intact
+ * any content headers sent with the request (including
+ * Content-Length, Content-Type, Content-Transfer-Encoding,
+ * Content-Encoding, Content-Base, Content-Language, Content-Location,
+ * 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 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
+ * effects for which the user can be held accountable. When using
+ * this method, it may be useful to save a copy of the
+ * affected URL in temporary storage.
+ *
+ * <p>If the HTTP PUT request is incorrectly formatted,
+ * <code>doPut</code> returns an HTTP "Bad Request" message.
+ *
+ *
+ * @param req the {@link HttpServletRequest} object that
+ * contains the request the client made of
+ * the servlet
+ *
+ * @param resp the {@link HttpServletResponse} object that
+ * contains the response the servlet returns
+ * to the client
+ *
+ * @exception IOException if an input or output error occurs
+ * while the servlet is handling the
+ * PUT request
+ *
+ * @exception ServletException if the request for the PUT
+ * cannot be handled
+ *
+ */
+
+ protected void doPut(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ String protocol = req.getProtocol();
+ String msg = lStrings.getString("http.method_put_not_supported");
+ if (protocol.endsWith("1.1")) {
+ resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
+ } else {
+ resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
+ }
+ }
- if (c.equals(javax.servlet.http.HttpServlet.class))
- {
- return null;
- }
- Method[] parentMethods = getAllDeclaredMethods(c.getSuperclass());
- Method[] thisMethods = c.getDeclaredMethods();
- if ((parentMethods != null) && (parentMethods.length > 0))
- {
- Method[] allMethods = new Method[parentMethods.length + thisMethods.length];
- System.arraycopy(parentMethods, 0, allMethods, 0, parentMethods.length);
- System.arraycopy(thisMethods, 0, allMethods, parentMethods.length, thisMethods.length);
- thisMethods = allMethods;
- }
+ /**
+ *
+ * Called by the server (via the <code>service</code> method)
+ * to allow a servlet to handle a DELETE request.
+ *
+ * The DELETE operation allows a client to remove a document
+ * or Web page from the server.
+ *
+ * <p>This method does not need to be either safe
+ * or idempotent. Operations requested through
+ * DELETE can have side effects for which users
+ * can be held accountable. When using
+ * this method, it may be useful to save a copy of the
+ * affected URL in temporary storage.
+ *
+ * <p>If the HTTP DELETE request is incorrectly formatted,
+ * <code>doDelete</code> returns an HTTP "Bad Request"
+ * message.
+ *
+ *
+ * @param req the {@link HttpServletRequest} object that
+ * contains the request the client made of
+ * the servlet
+ *
+ *
+ * @param resp the {@link HttpServletResponse} object that
+ * contains the response the servlet returns
+ * to the client
+ *
+ *
+ * @exception IOException if an input or output error occurs
+ * while the servlet is handling the
+ * DELETE request
+ *
+ * @exception ServletException if the request for the
+ * DELETE cannot be handled
+ *
+ */
+
+ protected void doDelete(HttpServletRequest req,
+ HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ String protocol = req.getProtocol();
+ String msg = lStrings.getString("http.method_delete_not_supported");
+ if (protocol.endsWith("1.1")) {
+ resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
+ } else {
+ resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
+ }
+ }
+
- return thisMethods;
- }
+ private static Method[] getAllDeclaredMethods(Class c) {
- /**
- * Called by the server (via the <code>service</code> method) to allow a
- * servlet to handle a OPTIONS request. The OPTIONS request determines which
- * HTTP methods the server supports and returns an appropriate header. For
- * example, if a servlet overrides <code>doGet</code>, this method returns
- * the following header:
- * <p>
- * <code>Allow: GET, HEAD, TRACE, OPTIONS</code>
- * <p>
- * There's no need to override this method unless the servlet implements new
- * HTTP methods, beyond those implemented by HTTP 1.1.
- *
- * @param req
- * the {@link HttpServletRequest} object that contains the request
- * the client made of the servlet
- * @param resp
- * the {@link HttpServletResponse} object that contains the
- * response the servlet returns to the client
- * @exception IOException
- * if an input or output error occurs while the servlet is
- * handling the OPTIONS request
- * @exception ServletException
- * if the request for the OPTIONS cannot be handled
- */
+ if (c.equals(javax.servlet.http.HttpServlet.class)) {
+ return null;
+ }
- protected void doOptions(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
- {
- Method[] methods = getAllDeclaredMethods(this.getClass());
+ Method[] parentMethods = getAllDeclaredMethods(c.getSuperclass());
+ Method[] thisMethods = c.getDeclaredMethods();
+
+ if ((parentMethods != null) && (parentMethods.length > 0)) {
+ Method[] allMethods =
+ new Method[parentMethods.length + thisMethods.length];
+ System.arraycopy(parentMethods, 0, allMethods, 0,
+ parentMethods.length);
+ System.arraycopy(thisMethods, 0, allMethods, parentMethods.length,
+ thisMethods.length);
- boolean ALLOW_GET = false;
- boolean ALLOW_HEAD = false;
- boolean ALLOW_POST = false;
- boolean ALLOW_PUT = false;
- boolean ALLOW_DELETE = false;
- boolean ALLOW_TRACE = true;
- boolean ALLOW_OPTIONS = true;
+ thisMethods = allMethods;
+ }
- for (int i = 0; i < methods.length; i++)
- {
- Method m = methods[i];
+ return thisMethods;
+ }
- if (m.getName().equals("doGet"))
- {
- ALLOW_GET = true;
- ALLOW_HEAD = true;
- }
- if (m.getName().equals("doPost"))
- ALLOW_POST = true;
- if (m.getName().equals("doPut"))
- ALLOW_PUT = true;
- if (m.getName().equals("doDelete"))
- ALLOW_DELETE = true;
- }
+ /**
+ * Called by the server (via the <code>service</code> method)
+ * to allow a servlet to handle a OPTIONS request.
+ *
+ * The OPTIONS request determines which HTTP methods
+ * the server supports and
+ * returns an appropriate header. For example, if a servlet
+ * overrides <code>doGet</code>, this method returns the
+ * following header:
+ *
+ * <p><code>Allow: GET, HEAD, TRACE, OPTIONS</code>
+ *
+ * <p>There's no need to override this method unless the
+ * servlet implements new HTTP methods, beyond those
+ * implemented by HTTP 1.1.
+ *
+ * @param req the {@link HttpServletRequest} object that
+ * contains the request the client made of
+ * the servlet
+ *
+ *
+ * @param resp the {@link HttpServletResponse} object that
+ * contains the response the servlet returns
+ * to the client
+ *
+ *
+ * @exception IOException if an input or output error occurs
+ * while the servlet is handling the
+ * OPTIONS request
+ *
+ * @exception ServletException if the request for the
+ * OPTIONS cannot be handled
+ *
+ */
+
+ protected void doOptions(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ Method[] methods = getAllDeclaredMethods(this.getClass());
+
+ boolean ALLOW_GET = false;
+ boolean ALLOW_HEAD = false;
+ boolean ALLOW_POST = false;
+ boolean ALLOW_PUT = false;
+ boolean ALLOW_DELETE = false;
+ boolean ALLOW_TRACE = true;
+ boolean ALLOW_OPTIONS = true;
+
+ for (int i=0; i<methods.length; i++) {
+ Method m = methods[i];
+
+ if (m.getName().equals("doGet")) {
+ ALLOW_GET = true;
+ ALLOW_HEAD = true;
+ }
+ if (m.getName().equals("doPost"))
+ ALLOW_POST = true;
+ if (m.getName().equals("doPut"))
+ ALLOW_PUT = true;
+ if (m.getName().equals("doDelete"))
+ ALLOW_DELETE = true;
+
+ }
+
+ String allow = null;
+ if (ALLOW_GET)
+ if (allow==null) allow=METHOD_GET;
+ if (ALLOW_HEAD)
+ if (allow==null) allow=METHOD_HEAD;
+ else allow += ", " + METHOD_HEAD;
+ if (ALLOW_POST)
+ if (allow==null) allow=METHOD_POST;
+ else allow += ", " + METHOD_POST;
+ if (ALLOW_PUT)
+ if (allow==null) allow=METHOD_PUT;
+ else allow += ", " + METHOD_PUT;
+ if (ALLOW_DELETE)
+ if (allow==null) allow=METHOD_DELETE;
+ else allow += ", " + METHOD_DELETE;
+ if (ALLOW_TRACE)
+ if (allow==null) allow=METHOD_TRACE;
+ else allow += ", " + METHOD_TRACE;
+ if (ALLOW_OPTIONS)
+ if (allow==null) allow=METHOD_OPTIONS;
+ else allow += ", " + METHOD_OPTIONS;
+
+ resp.setHeader("Allow", allow);
+ }
+
+
+
+
+ /**
+ * Called by the server (via the <code>service</code> method)
+ * to allow a servlet to handle a TRACE request.
+ *
+ * A TRACE returns the headers sent with the TRACE
+ * request to the client, so that they can be used in
+ * debugging. There's no need to override this method.
+ *
+ *
+ *
+ * @param req the {@link HttpServletRequest} object that
+ * contains the request the client made of
+ * the servlet
+ *
+ *
+ * @param resp the {@link HttpServletResponse} object that
+ * contains the response the servlet returns
+ * to the client
+ *
+ *
+ * @exception IOException if an input or output error occurs
+ * while the servlet is handling the
+ * TRACE request
+ *
+ * @exception ServletException if the request for the
+ * TRACE cannot be handled
+ *
+ */
- String allow = null;
- if (ALLOW_GET)
- if (allow == null)
- allow = METHOD_GET;
- if (ALLOW_HEAD)
- if (allow == null)
- allow = METHOD_HEAD;
- else
- allow += ", " + METHOD_HEAD;
- if (ALLOW_POST)
- if (allow == null)
- allow = METHOD_POST;
- else
- allow += ", " + METHOD_POST;
- if (ALLOW_PUT)
- if (allow == null)
- allow = METHOD_PUT;
- else
- allow += ", " + METHOD_PUT;
- if (ALLOW_DELETE)
- if (allow == null)
- allow = METHOD_DELETE;
- else
- allow += ", " + METHOD_DELETE;
- if (ALLOW_TRACE)
- if (allow == null)
- allow = METHOD_TRACE;
- else
- allow += ", " + METHOD_TRACE;
- if (ALLOW_OPTIONS)
- if (allow == null)
- allow = METHOD_OPTIONS;
- else
- allow += ", " + METHOD_OPTIONS;
+ protected void doTrace(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+
+ int responseLength;
+
+ String CRLF = "\r\n";
+ String responseString = "TRACE "+ req.getRequestURI()+
+ " " + req.getProtocol();
+
+ Enumeration reqHeaderEnum = req.getHeaderNames();
+
+ while( reqHeaderEnum.hasMoreElements() ) {
+ String headerName = (String)reqHeaderEnum.nextElement();
+ responseString += CRLF + headerName + ": " +
+ req.getHeader(headerName);
+ }
+
+ responseString += CRLF;
+
+ responseLength = responseString.length();
+
+ resp.setContentType("message/http");
+ resp.setContentLength(responseLength);
+ ServletOutputStream out = resp.getOutputStream();
+ out.print(responseString);
+ out.close();
+ return;
+ }
- resp.setHeader("Allow", allow);
- }
- /**
- * Called by the server (via the <code>service</code> method) to allow a
- * servlet to handle a TRACE request. A TRACE returns the headers sent with
- * the TRACE request to the client, so that they can be used in debugging.
- * There's no need to override this method.
- *
- * @param req
- * the {@link HttpServletRequest} object that contains the request
- * the client made of the servlet
- * @param resp
- * the {@link HttpServletResponse} object that contains the
- * response the servlet returns to the client
- * @exception IOException
- * if an input or output error occurs while the servlet is
- * handling the TRACE request
- * @exception ServletException
- * if the request for the TRACE cannot be handled
- */
- protected void doTrace(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
- {
- int responseLength;
- String CRLF = "\r\n";
- String responseString = "TRACE " + req.getRequestURI() + " " + req.getProtocol();
+ /**
+ *
+ * Receives standard HTTP requests from the public
+ * <code>service</code> method and dispatches
+ * them to the <code>do</code><i>XXX</i> methods defined in
+ * this class. This method is an HTTP-specific version of the
+ * {@link javax.servlet.Servlet#service} method. There's no
+ * need to override this method.
+ *
+ *
+ *
+ * @param req the {@link HttpServletRequest} object that
+ * contains the request the client made of
+ * the servlet
+ *
+ *
+ * @param resp the {@link HttpServletResponse} object that
+ * contains the response the servlet returns
+ * to the client
+ *
+ *
+ * @exception IOException if an input or output error occurs
+ * while the servlet is handling the
+ * HTTP request
+ *
+ * @exception ServletException if the HTTP request
+ * cannot be handled
+ *
+ * @see javax.servlet.Servlet#service
+ *
+ */
- Enumeration reqHeaderEnum = req.getHeaderNames();
+ protected void service(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ String method = req.getMethod();
- while (reqHeaderEnum.hasMoreElements())
- {
- String headerName = (String) reqHeaderEnum.nextElement();
- responseString += CRLF + headerName + ": " + req.getHeader(headerName);
- }
+ if (method.equals(METHOD_GET)) {
+ long lastModified = getLastModified(req);
+ if (lastModified == -1) {
+ // servlet doesn't support if-modified-since, no reason
+ // to go through further expensive logic
+ doGet(req, resp);
+ } else {
+ long ifModifiedSince = req.getDateHeader(HEADER_IFMODSINCE);
+ if (ifModifiedSince < (lastModified / 1000 * 1000)) {
+ // If the servlet mod time is later, call doGet()
+ // Round down to the nearest second for a proper compare
+ // A ifModifiedSince of -1 will always be less
+ maybeSetLastModified(resp, lastModified);
+ doGet(req, resp);
+ } else {
+ resp.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
+ }
+ }
- responseString += CRLF;
+ } else if (method.equals(METHOD_HEAD)) {
+ long lastModified = getLastModified(req);
+ maybeSetLastModified(resp, lastModified);
+ doHead(req, resp);
- responseLength = responseString.length();
+ } else if (method.equals(METHOD_POST)) {
+ doPost(req, resp);
+
+ } else if (method.equals(METHOD_PUT)) {
+ doPut(req, resp);
+
+ } else if (method.equals(METHOD_DELETE)) {
+ doDelete(req, resp);
+
+ } else if (method.equals(METHOD_OPTIONS)) {
+ doOptions(req,resp);
+
+ } else if (method.equals(METHOD_TRACE)) {
+ doTrace(req,resp);
+
+ } else {
+ //
+ // Note that this means NO servlet supports whatever
+ // method was requested, anywhere on this server.
+ //
- resp.setContentType("message/http");
- resp.setContentLength(responseLength);
- ServletOutputStream out = resp.getOutputStream();
- out.print(responseString);
- out.close();
- return;
- }
+ String errMsg = lStrings.getString("http.method_not_implemented");
+ Object[] errArgs = new Object[1];
+ errArgs[0] = method;
+ errMsg = MessageFormat.format(errMsg, errArgs);
+
+ resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, errMsg);
+ }
+ }
+
- /**
- * Receives standard HTTP requests from the public <code>service</code>
- * method and dispatches them to the <code>do</code><i>XXX</i> methods
- * defined in this class. This method is an HTTP-specific version of the
- * {@link javax.servlet.Servlet#service} method. There's no need to override
- * this method.
- *
- * @param req
- * the {@link HttpServletRequest} object that contains the request
- * the client made of the servlet
- * @param resp
- * the {@link HttpServletResponse} object that contains the
- * response the servlet returns to the client
- * @exception IOException
- * if an input or output error occurs while the servlet is
- * handling the HTTP request
- * @exception ServletException
- * if the HTTP request cannot be handled
- * @see javax.servlet.Servlet#service
- */
- protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
- {
- String method = req.getMethod();
- if (method.equals(METHOD_GET))
- {
- long lastModified = getLastModified(req);
- if (lastModified == -1)
- {
- // servlet doesn't support if-modified-since, no reason
- // to go through further expensive logic
- doGet(req, resp);
- }
- else
- {
- long ifModifiedSince = req.getDateHeader(HEADER_IFMODSINCE);
- if (ifModifiedSince < (lastModified / 1000 * 1000))
- {
- // If the servlet mod time is later, call doGet()
- // Round down to the nearest second for a proper compare
- // A ifModifiedSince of -1 will always be less
- maybeSetLastModified(resp, lastModified);
- doGet(req, resp);
- }
- else
- {
- resp.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
- }
- }
- }
- else if (method.equals(METHOD_HEAD))
- {
- long lastModified = getLastModified(req);
- maybeSetLastModified(resp, lastModified);
- doHead(req, resp);
+ /*
+ * Sets the Last-Modified entity header field, if it has not
+ * already been set and if the value is meaningful. Called before
+ * doGet, to ensure that headers are set before response data is
+ * written. A subclass might have set this header already, so we
+ * check.
+ */
- }
- else if (method.equals(METHOD_POST))
- {
- doPost(req, resp);
+ private void maybeSetLastModified(HttpServletResponse resp,
+ long lastModified) {
+ if (resp.containsHeader(HEADER_LASTMOD))
+ return;
+ if (lastModified >= 0)
+ resp.setDateHeader(HEADER_LASTMOD, lastModified);
+ }
+
+
+
+
+ /**
+ *
+ * Dispatches client requests to the protected
+ * <code>service</code> method. There's no need to
+ * override this method.
+ *
+ *
+ * @param req the {@link HttpServletRequest} object that
+ * contains the request the client made of
+ * the servlet
+ *
+ *
+ * @param res the {@link HttpServletResponse} object that
+ * contains the response the servlet returns
+ * to the client
+ *
+ *
+ * @exception IOException if an input or output error occurs
+ * while the servlet is handling the
+ * HTTP request
+ *
+ * @exception ServletException if the HTTP request cannot
+ * be handled
+ *
+ *
+ * @see javax.servlet.Servlet#service
+ *
+ */
- }
- else if (method.equals(METHOD_PUT))
- {
- doPut(req, resp);
+ public void service(ServletRequest req, ServletResponse res)
+ throws ServletException, IOException
+ {
+ HttpServletRequest request;
+ HttpServletResponse response;
+
+ try {
+ request = (HttpServletRequest) req;
+ response = (HttpServletResponse) res;
+ } catch (ClassCastException e) {
+ throw new ServletException("non-HTTP request or response");
+ }
+ service(request, response);
+ }
+}
- }
- else if (method.equals(METHOD_DELETE))
- {
- doDelete(req, resp);
- }
- else if (method.equals(METHOD_OPTIONS))
- {
- doOptions(req, resp);
- }
- else if (method.equals(METHOD_TRACE))
- {
- doTrace(req, resp);
- }
- else
- {
- //
- // Note that this means NO servlet supports whatever
- // method was requested, anywhere on this server.
- //
-
- String errMsg = lStrings.getString("http.method_not_implemented");
- Object[] errArgs = new Object[1];
- errArgs[0] = method;
- errMsg = MessageFormat.format(errMsg, errArgs);
-
- resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, errMsg);
- }
- }
-
- /*
- * Sets the Last-Modified entity header field, if it has not already been set
- * and if the value is meaningful. Called before doGet, to ensure that
- * headers are set before response data is written. A subclass might have set
- * this header already, so we check.
- */
-
- private void maybeSetLastModified(HttpServletResponse resp, long lastModified)
- {
- if (resp.containsHeader(HEADER_LASTMOD))
- return;
- if (lastModified >= 0)
- resp.setDateHeader(HEADER_LASTMOD, lastModified);
- }
-
- /**
- * Dispatches client requests to the protected <code>service</code> method.
- * There's no need to override this method.
- *
- * @param req
- * the {@link HttpServletRequest} object that contains the request
- * the client made of the servlet
- * @param res
- * the {@link HttpServletResponse} object that contains the
- * response the servlet returns to the client
- * @exception IOException
- * if an input or output error occurs while the servlet is
- * handling the HTTP request
- * @exception ServletException
- * if the HTTP request cannot be handled
- * @see javax.servlet.Servlet#service
- */
-
- public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException
- {
- HttpServletRequest request;
- HttpServletResponse response;
-
- try
- {
- request = (HttpServletRequest) req;
- response = (HttpServletResponse) res;
- }
- catch (ClassCastException e)
- {
- throw new ServletException("non-HTTP request or response");
- }
- service(request, response);
- }
-}
-
/*
- * A response that includes no body, for use in (dumb) "HEAD" support. This just
- * swallows that body, counting the bytes in order to set the content length
- * appropriately. All other methods delegate directly to the HTTP Servlet
- * Response object used to construct this one.
+ * A response that includes no body, for use in (dumb) "HEAD" support.
+ * This just swallows that body, counting the bytes in order to set
+ * the content length appropriately. All other methods delegate directly
+ * to the HTTP Servlet Response object used to construct this one.
*/
// file private
-class NoBodyResponse implements HttpServletResponse
-{
- private HttpServletResponse resp;
+class NoBodyResponse implements HttpServletResponse {
+ private HttpServletResponse resp;
+ private NoBodyOutputStream noBody;
+ private PrintWriter writer;
+ private boolean didSetContentLength;
- private NoBodyOutputStream noBody;
+ // file private
+ NoBodyResponse(HttpServletResponse r) {
+ resp = r;
+ noBody = new NoBodyOutputStream();
+ }
- private PrintWriter writer;
+ // file private
+ void setContentLength() {
+ if (!didSetContentLength)
+ resp.setContentLength(noBody.getContentLength());
+ }
- private boolean didSetContentLength;
- // file private
- NoBodyResponse(HttpServletResponse r)
- {
- resp = r;
- noBody = new NoBodyOutputStream();
- }
+ // SERVLET RESPONSE interface methods
- // file private
- void setContentLength()
- {
- if (!didSetContentLength)
- resp.setContentLength(noBody.getContentLength());
- }
+ public void setContentLength(int len) {
+ resp.setContentLength(len);
+ didSetContentLength = true;
+ }
- // SERVLET RESPONSE interface methods
+ public void setCharacterEncoding(String charset)
+ { resp.setCharacterEncoding(charset); }
- public void setContentLength(int len)
- {
- resp.setContentLength(len);
- didSetContentLength = true;
- }
+ public void setContentType(String type)
+ { resp.setContentType(type); }
- public void setCharacterEncoding(String charset)
- {
- resp.setCharacterEncoding(charset);
- }
+ public String getContentType()
+ { return resp.getContentType(); }
- public void setContentType(String type)
- {
- resp.setContentType(type);
- }
+ public ServletOutputStream getOutputStream() throws IOException
+ { return noBody; }
- public String getContentType()
- {
- return resp.getContentType();
- }
+ public String getCharacterEncoding()
+ { return resp.getCharacterEncoding(); }
- public ServletOutputStream getOutputStream() throws IOException
- {
- return noBody;
- }
+ public PrintWriter getWriter() throws UnsupportedEncodingException
+ {
+ if (writer == null) {
+ OutputStreamWriter w;
- public String getCharacterEncoding()
- {
- return resp.getCharacterEncoding();
- }
+ w = new OutputStreamWriter(noBody, getCharacterEncoding());
+ writer = new PrintWriter(w);
+ }
+ return writer;
+ }
- public PrintWriter getWriter() throws UnsupportedEncodingException
- {
- if (writer == null)
- {
- OutputStreamWriter w;
+ public void setBufferSize(int size) throws IllegalStateException
+ { resp.setBufferSize(size); }
- w = new OutputStreamWriter(noBody, getCharacterEncoding());
- writer = new PrintWriter(w);
- }
- return writer;
- }
+ public int getBufferSize()
+ { return resp.getBufferSize(); }
- public void setBufferSize(int size) throws IllegalStateException
- {
- resp.setBufferSize(size);
- }
+ public void reset() throws IllegalStateException
+ { resp.reset(); }
+
+ public void resetBuffer() throws IllegalStateException
+ { resp.resetBuffer(); }
- public int getBufferSize()
- {
- return resp.getBufferSize();
- }
+ public boolean isCommitted()
+ { return resp.isCommitted(); }
- public void reset() throws IllegalStateException
- {
- resp.reset();
- }
+ public void flushBuffer() throws IOException
+ { resp.flushBuffer(); }
- public void resetBuffer() throws IllegalStateException
- {
- resp.resetBuffer();
- }
+ public void setLocale(Locale loc)
+ { resp.setLocale(loc); }
- public boolean isCommitted()
- {
- return resp.isCommitted();
- }
+ public Locale getLocale()
+ { return resp.getLocale(); }
- public void flushBuffer() throws IOException
- {
- resp.flushBuffer();
- }
- public void setLocale(Locale loc)
- {
- resp.setLocale(loc);
- }
+ // HTTP SERVLET RESPONSE interface methods
- public Locale getLocale()
- {
- return resp.getLocale();
- }
+ public void addCookie(Cookie cookie)
+ { resp.addCookie(cookie); }
- // HTTP SERVLET RESPONSE interface methods
+ public boolean containsHeader(String name)
+ { return resp.containsHeader(name); }
- public void addCookie(Cookie cookie)
- {
- resp.addCookie(cookie);
- }
+ /** @deprecated */
+ public void setStatus(int sc, String sm)
+ { resp.setStatus(sc, sm); }
- public boolean containsHeader(String name)
- {
- return resp.containsHeader(name);
- }
+ public void setStatus(int sc)
+ { resp.setStatus(sc); }
- /** @deprecated */
- public void setStatus(int sc, String sm)
- {
- resp.setStatus(sc, sm);
- }
+ public void setHeader(String name, String value)
+ { resp.setHeader(name, value); }
- public void setStatus(int sc)
- {
- resp.setStatus(sc);
- }
+ public void setIntHeader(String name, int value)
+ { resp.setIntHeader(name, value); }
- public void setHeader(String name, String value)
- {
- resp.setHeader(name, value);
- }
+ public void setDateHeader(String name, long date)
+ { resp.setDateHeader(name, date); }
- public void setIntHeader(String name, int value)
- {
- resp.setIntHeader(name, value);
- }
+ public void sendError(int sc, String msg) throws IOException
+ { resp.sendError(sc, msg); }
- public void setDateHeader(String name, long date)
- {
- resp.setDateHeader(name, date);
- }
+ public void sendError(int sc) throws IOException
+ { resp.sendError(sc); }
- public void sendError(int sc, String msg) throws IOException
- {
- resp.sendError(sc, msg);
- }
+ public void sendRedirect(String location) throws IOException
+ { resp.sendRedirect(location); }
+
+ public String encodeURL(String url)
+ { return resp.encodeURL(url); }
- public void sendError(int sc) throws IOException
- {
- resp.sendError(sc);
- }
+ public String encodeRedirectURL(String url)
+ { return resp.encodeRedirectURL(url); }
+
+ public void addHeader(String name, String value)
+ { resp.addHeader(name, value); }
+
+ public void addDateHeader(String name, long value)
+ { resp.addDateHeader(name, value); }
+
+ public void addIntHeader(String name, int value)
+ { resp.addIntHeader(name, value); }
+
+
+
- public void sendRedirect(String location) throws IOException
- {
- resp.sendRedirect(location);
- }
+ /**
+ * @deprecated As of Version 2.1, replaced by
+ * {@link HttpServletResponse#encodeURL}.
+ *
+ */
+
+
+ public String encodeUrl(String url)
+ { return this.encodeURL(url); }
+
+
+
+
+
+
+
- public String encodeURL(String url)
- {
- return resp.encodeURL(url);
- }
+ /**
+ * @deprecated As of Version 2.1, replaced by
+ * {@link HttpServletResponse#encodeRedirectURL}.
+ *
+ */
+
+
+ public String encodeRedirectUrl(String url)
+ { return this.encodeRedirectURL(url); }
- public String encodeRedirectURL(String url)
- {
- return resp.encodeRedirectURL(url);
- }
+}
- public void addHeader(String name, String value)
- {
- resp.addHeader(name, value);
- }
- public void addDateHeader(String name, long value)
- {
- resp.addDateHeader(name, value);
- }
- public void addIntHeader(String name, int value)
- {
- resp.addIntHeader(name, value);
- }
- /**
- * @deprecated As of Version 2.1, replaced by
- * {@link HttpServletResponse#encodeURL}.
- */
- public String encodeUrl(String url)
- {
- return this.encodeURL(url);
- }
- /**
- * @deprecated As of Version 2.1, replaced by
- * {@link HttpServletResponse#encodeRedirectURL}.
- */
- public String encodeRedirectUrl(String url)
- {
- return this.encodeRedirectURL(url);
- }
-
-}
-
/*
* Servlet output stream that gobbles up all its data.
*/
-
+
// file private
-class NoBodyOutputStream extends ServletOutputStream
-{
+class NoBodyOutputStream extends ServletOutputStream {
- private static final String LSTRING_FILE = "javax.servlet.http.LocalStrings";
+ private static final String LSTRING_FILE =
+ "javax.servlet.http.LocalStrings";
+ private static ResourceBundle lStrings =
+ ResourceBundle.getBundle(LSTRING_FILE);
- private static ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE);
+ private int contentLength = 0;
- private int contentLength = 0;
+ // file private
+ NoBodyOutputStream() {}
- // file private
- NoBodyOutputStream()
- {
- }
+ // file private
+ int getContentLength() {
+ return contentLength;
+ }
- // file private
- int getContentLength()
- {
- return contentLength;
- }
+ public void write(int b) {
+ contentLength++;
+ }
- public void write(int b)
- {
- contentLength++;
- }
-
- public void write(byte buf[], int offset, int len) throws IOException
- {
- if (len >= 0)
- {
- contentLength += len;
- }
- else
- {
- // XXX
- // isn't this really an IllegalArgumentException?
-
- String msg = lStrings.getString("err.io.negativelength");
- throw new IOException(msg);
- }
- }
+ public void write(byte buf[], int offset, int len)
+ throws IOException
+ {
+ if (len >= 0) {
+ contentLength += len;
+ } else {
+ // XXX
+ // isn't this really an IllegalArgumentException?
+
+ String msg = lStrings.getString("err.io.negativelength");
+ throw new IOException("negative length");
+ }
+ }
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletRequest.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletRequest.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletRequest.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,465 +1,661 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
package javax.servlet.http;
import javax.servlet.ServletRequest;
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> object and
- * passes it as an argument to the servlet's service methods (<code>doGet</code>,
- * <code>doPost</code>, etc).
- *
- * @author Various
+ *
+ * Extends the {@link javax.servlet.ServletRequest} interface
+ * to provide request information for HTTP servlets.
+ *
+ * <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$
+ *
+ *
*/
-public interface HttpServletRequest extends ServletRequest
-{
+public interface HttpServletRequest extends ServletRequest {
- /**
+ /**
* String identifier for Basic authentication. Value "BASIC"
*/
- public static final String BASIC_AUTH = "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 FORM_AUTH = "FORM";
+ /**
+ * String identifier for Client Certificate authentication. Value "CLIENT_CERT"
*/
- public static final String CLIENT_CERT_AUTH = "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";
+ public static final String DIGEST_AUTH = "DIGEST";
- /**
- * Returns the name of the authentication scheme used to protect the servlet.
- * All servlet containers support basic, form and client certificate
- * authentication, and may additionally support digest authentication. If the
- * servlet is not authenticated <code>null</code> is returned.
- * <p>
- * Same as the value of the CGI variable AUTH_TYPE.
- *
- * @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.
- */
+ /**
+ * Returns the name of the authentication scheme used to protect
+ * the servlet. All servlet containers support basic, form and client
+ * certificate authentication, and may additionally support digest
+ * authentication.
+ * If the servlet is not authenticated <code>null</code> is returned.
+ *
+ * <p>Same as the value of the CGI variable AUTH_TYPE.
+ *
+ *
+ * @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();
+
+
+
- public String getAuthType();
+ /**
+ *
+ * Returns an array containing all of the <code>Cookie</code>
+ * objects the client sent with this request.
+ * This method returns <code>null</code> if no cookies were sent.
+ *
+ * @return an array of all the <code>Cookies</code>
+ * included with this request, or <code>null</code>
+ * if the request has no cookies
+ *
+ *
+ */
- /**
- * Returns an array containing all of the <code>Cookie</code> objects the
- * client sent with this request. This method returns <code>null</code> if
- * no cookies were sent.
- *
- * @return an array of all the <code>Cookies</code> included with this
- * request, or <code>null</code> if the request has no cookies
- */
+ public Cookie[] getCookies();
+
+
+
- public Cookie[] getCookies();
+ /**
+ *
+ * Returns the value of the specified request header
+ * as a <code>long</code> value that represents a
+ * <code>Date</code> object. Use this method with
+ * headers that contain dates, such as
+ * <code>If-Modified-Since</code>.
+ *
+ * <p>The date is returned as
+ * the number of milliseconds since January 1, 1970 GMT.
+ * The header name is case insensitive.
+ *
+ * <p>If the request did not have a header of the
+ * specified name, this method returns -1. If the header
+ * can't be converted to a date, the method throws
+ * an <code>IllegalArgumentException</code>.
+ *
+ * @param 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
+ *
+ */
- /**
- * Returns the value of the specified request header as a <code>long</code>
- * value that represents a <code>Date</code> object. Use this method with
- * headers that contain dates, such as <code>If-Modified-Since</code>.
- * <p>
- * The date is returned as the number of milliseconds since January 1, 1970
- * GMT. The header name is case insensitive.
- * <p>
- * If the request did not have a header of the specified name, this method
- * returns -1. If the header can't be converted to a date, the method throws
- * an <code>IllegalArgumentException</code>.
- *
- * @param name
- * a <code>String</code> specifying the name of the header
- * @return a <code>long</code> value representing the date specified in the
- * header expressed as the number of milliseconds since January 1,
- * 1970 GMT, or -1 if the named header was not included with the
- * request
- * @exception IllegalArgumentException
- * If the header value can't be converted to a date
- */
+ public long getDateHeader(String name);
+
+
+
- public long getDateHeader(String name);
+ /**
+ *
+ * Returns the value of the specified request header
+ * as a <code>String</code>. If the request did not include a header
+ * of the specified name, this method returns <code>null</code>.
+ * If there are multiple headers with the same name, this method
+ * returns the first head in the request.
+ * The header name is case insensitive. You can use
+ * this method with any request header.
+ *
+ * @param 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
+ *
+ */
- /**
- * Returns the value of the specified request header as a <code>String</code>.
- * If the request did not include a header of the specified name, this method
- * returns <code>null</code>. If there are multiple headers with the same
- * name, this method returns the first head in the request. The header name
- * is case insensitive. You can use this method with any request header.
- *
- * @param 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);
- public String getHeader(String name);
- /**
- * Returns all the values of the specified request header as an
- * <code>Enumeration</code> of <code>String</code> objects.
- * <p>
- * Some headers, such as <code>Accept-Language</code> can be sent by
- * clients as several headers each with a different value rather than sending
- * the header as a comma separated list.
- * <p>
- * If the request did not include any headers of the specified name, this
- * method returns an empty <code>Enumeration</code>. The header name is
- * case insensitive. You can use this method with any request header.
- *
- * @param 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>
- */
+ /**
+ *
+ * Returns all the values of the specified request header
+ * as an <code>Enumeration</code> of <code>String</code> objects.
+ *
+ * <p>Some headers, such as <code>Accept-Language</code> can be sent
+ * by clients as several headers each with a different value rather than
+ * sending the header as a comma separated list.
+ *
+ * <p>If the request did not include any headers
+ * of the specified name, this method returns an empty
+ * <code>Enumeration</code>.
+ * The header name is case insensitive. You can use
+ * this method with any request header.
+ *
+ * @param name a <code>String</code> specifying the
+ * header name
+ *
+ * @return 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();
+ public Enumeration 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>
- * 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>
- */
+ /**
+ *
+ * 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>
+ *
+ *
+ */
- public int getIntHeader(String name);
+ public Enumeration getHeaderNames();
+
+
+
- /**
- * 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
- */
+ /**
+ *
+ * Returns the value of the specified request header
+ * as an <code>int</code>. If the request does not have a header
+ * of the specified name, this method returns -1. If the
+ * header cannot be converted to an integer, this method
+ * throws a <code>NumberFormatException</code>.
+ *
+ * <p>The header name is case insensitive.
+ *
+ * @param 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>
+ */
- public String getMethod();
+ public int getIntHeader(String name);
+
+
+
- /**
- * Returns any extra path information associated with the URL the client sent
- * when it made this request. The extra path information follows the servlet
- * path but precedes the query string and will start with a "/" character.
- * <p>
- * This method returns <code>null</code> if there was no extra path
- * information.
- * <p>
- * Same as the value of the CGI variable PATH_INFO.
- *
- * @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
- */
+ /**
+ *
+ * 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
+ *
+ */
+
+ public String getMethod();
+
+
+
- public String getPathInfo();
+ /**
+ *
+ * Returns any extra path information associated with
+ * the URL the client sent when it made this request.
+ * The extra path information follows the servlet path
+ * but precedes the query string and will start with
+ * a "/" character.
+ *
+ * <p>This method returns <code>null</code> if there
+ * was no extra path information.
+ *
+ * <p>Same as the value of the CGI variable PATH_INFO.
+ *
+ *
+ * @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();
+
- /**
- * 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>
- * If the URL does not have any extra path information, this method returns
- * <code>null</code> or the servlet container cannot translate the virtual
- * path to a real path for any reason (such as when the web application is
- * executed from an archive). The web container does not decode this string.
- *
- * @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();
+ /**
+ *
+ * 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>If the URL does not have any extra path information,
+ * this method returns <code>null</code> or the servlet container
+ * cannot translate the virtual path to a real path for any reason
+ * (such as when the web application is executed from an archive).
+ *
+ * The web container does not decode this string.
+ *
+ *
+ * @return a <code>String</code> specifying the
+ * real path, or <code>null</code> if
+ * the URL does not have any extra path
+ * information
+ *
+ *
+ */
- /**
- * 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.
- * <p>
- * It is possible that a servlet container may match a context by more than
- * one context path. In such cases this method will return the actual context
- * path used by the request and it may differ from the path returned by the
- * {@link javax.servlet.ServletContext#getContextPath()} method. The context
- * path returned by {@link javax.servlet.ServletContext#getContextPath()}
- * should be considered as the prime or preferred context path of the
- * application.
- *
- * @return a <code>String</code> specifying the portion of the request URI
- * that indicates the context of the request
- * @see javax.servlet.ServletContext#getContextPath()
- */
+ public String getPathTranslated();
+
- 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.
- */
+ /**
+ *
+ * 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 getQueryString();
+ public String getContextPath();
+
+
+
- /**
- * Returns the login of the user making this request, if the user has been
- * authenticated, or <code>null</code> if the user has not been
- * authenticated. Whether the user name is sent with each subsequent request
- * depends on the browser and type of authentication. Same as the value of
- * the CGI variable REMOTE_USER.
- *
- * @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
- */
+ /**
+ *
+ * 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.
+ *
+ */
- public String getRemoteUser();
+ public String getQueryString();
+
+
+
- /**
- * 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
- */
+ /**
+ *
+ * Returns the login of the user making this request, if the
+ * user has been authenticated, or <code>null</code> if the user
+ * has not been authenticated.
+ * Whether the user name is sent with each subsequent request
+ * depends on the browser and type of authentication. Same as the
+ * value of the CGI variable REMOTE_USER.
+ *
+ * @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 boolean isUserInRole(String role);
+ public String getRemoteUser();
+
+
+
- /**
- * 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
- */
+ /**
+ *
+ * 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 java.security.Principal getUserPrincipal();
+ public boolean isUserInRole(String role);
+
+
+
- /**
- * 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
- */
+ /**
+ *
+ * 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 String getRequestedSessionId();
+ public java.security.Principal getUserPrincipal();
+
+
+
- /**
- * Returns the part of this request's URL from the protocol name up to the
- * query string in the first line of the HTTP request. The web container does
- * not decode this String. For example: <table summary="Examples of Returned
- * Values">
- * <tr align=left>
- * <th>First line of HTTP request </th>
- * <th> Returned Value</th>
- * <tr>
- * <td>POST /some/path.html HTTP/1.1
- * <td>
- * <td>/some/path.html
- * <tr>
- * <td>GET http://foo.bar/a.html HTTP/1.0
- * <td>
- * <td>/a.html
- * <tr>
- * <td>HEAD /xyz?a=b HTTP/1.1
- * <td>
- * <td>/xyz </table>
- * <p>
- * To reconstruct an URL with a scheme and host, use
- * {@link HttpUtils#getRequestURL}.
- *
- * @return a <code>String</code> containing the part of the URL from the
- * protocol name up to the query string
- * @see HttpUtils#getRequestURL
- */
+ /**
+ *
+ * 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
+ *
+ */
- public String getRequestURI();
+ 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:
+ *
+ *
- /**
- * 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>
- * If this request has been forwarded using
- * {@link javax.servlet.RequestDispatcher#forward}, the server path in the
- * reconstructed URL must reflect the path used to obtain the
- * RequestDispatcher, and not the server path specified by the client.
- * <p>
- * Because this method returns a <code>StringBuffer</code>, not a string,
- * you can modify the URL easily, for example, to append query parameters.
- * <p>
- * This method is useful for creating redirect messages and for reporting
- * errors.
- *
- * @return a <code>StringBuffer</code> object containing the reconstructed
- * URL
- */
- public StringBuffer getRequestURL();
+ * <table summary="Examples of Returned Values">
+ * <tr align=left><th>First line of HTTP request </th>
+ * <th> Returned Value</th>
+ * <tr><td>POST /some/path.html HTTP/1.1<td><td>/some/path.html
+ * <tr><td>GET http://foo.bar/a.html HTTP/1.0
+ * <td><td>/a.html
+ * <tr><td>HEAD /xyz?a=b HTTP/1.1<td><td>/xyz
+ * </table>
+ *
+ * <p>To reconstruct an URL with a scheme and host, use
+ * {@link HttpUtils#getRequestURL}.
+ *
+ * @return a <code>String</code> containing
+ * the part of the URL from the
+ * protocol name up to the query string
+ *
+ * @see HttpUtils#getRequestURL
+ *
+ */
- /**
- * Returns the part of this request's URL that calls the servlet. This path
- * starts with a "/" character and includes either the servlet name or a path
- * to the servlet, but does not include any extra path information or a query
- * string. Same as the value of the CGI variable SCRIPT_NAME.
- * <p>
- * This method will return an empty string ("") if the servlet used to
- * process this request was matched using the "/*" pattern.
- *
- * @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 getRequestURI();
+
+ /**
+ *
+ * Reconstructs the URL the client used to make the request.
+ * The returned URL contains a protocol, server name, port
+ * number, and server path, but it does not include query
+ * string parameters.
+ *
+ * <p>Because this method returns a <code>StringBuffer</code>,
+ * not a string, you can modify the URL easily, for example,
+ * to append query parameters.
+ *
+ * <p>This method is useful for creating redirect messages
+ * and for reporting errors.
+ *
+ * @return a <code>StringBuffer</code> object containing
+ * the reconstructed URL
+ *
+ */
+ public StringBuffer getRequestURL();
+
- public String getServletPath();
+ /**
+ *
+ * Returns the part of this request's URL that calls
+ * the servlet. This path starts with a "/" character
+ * and includes either the servlet name or a path to
+ * the servlet, but does not include any extra path
+ * information or a query string. Same as the value of
+ * the CGI variable SCRIPT_NAME.
+ *
+ * <p>This method will return an empty string ("") if the
+ * servlet used to process this request was matched using
+ * the "/*" pattern.
+ *
+ * @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.
+ *
+ */
- /**
- * Returns the current <code>HttpSession</code> associated with this
- * request or, if there is no current session and <code>create</code> is
- * true, returns a new session.
- * <p>
- * If <code>create</code> is <code>false</code> and the request has no
- * valid <code>HttpSession</code>, this method returns <code>null</code>.
- * <p>
- * To make sure the session is properly maintained, you must call this method
- * before the response is committed. If the container is using cookies to
- * maintain session integrity and is asked to create a new session when the
- * response is committed, an IllegalStateException is thrown.
- *
- * @param create
- * <code>true</code> to create a new session for this request if
- * necessary; <code>false</code> to return <code>null</code> if
- * there's no current session
- * @return the <code>HttpSession</code> associated with this request or
- * <code>null</code> if <code>create</code> is <code>false</code>
- * and the request has no valid session
- * @see #getSession()
- */
+ public String getServletPath();
+
+
+
- public HttpSession getSession(boolean create);
+ /**
+ *
+ * Returns the current <code>HttpSession</code>
+ * associated with this request or, if there is no
+ * current session and <code>create</code> is true, returns
+ * a new session.
+ *
+ * <p>If <code>create</code> is <code>false</code>
+ * and the request has no valid <code>HttpSession</code>,
+ * this method returns <code>null</code>.
+ *
+ * <p>To make sure the session is properly maintained,
+ * you must call this method before
+ * the response is committed. If the container is using cookies
+ * to maintain session integrity and is asked to create a new session
+ * when the response is committed, an IllegalStateException is thrown.
+ *
+ *
+ *
+ *
+ * @param create <code>true</code> to create
+ * a new session for this request if necessary;
+ * <code>false</code> to return <code>null</code>
+ * if there's no current session
+ *
+ *
+ * @return the <code>HttpSession</code> associated
+ * with this request or <code>null</code> if
+ * <code>create</code> is <code>false</code>
+ * and the request has no valid session
+ *
+ * @see #getSession()
+ *
+ *
+ */
- /**
- * 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)
- */
+ public HttpSession getSession(boolean create);
+
+
+
+
- public HttpSession getSession();
+ /**
+ *
+ * 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)
+ *
+ */
- /**
- * Checks whether the requested session ID is still valid.
- * <p>
- * If the client did not specify any session ID, this method returns
- * <code>false</code>.
- *
- * @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
- */
+ public HttpSession getSession();
+
+
+
+
+
- public boolean isRequestedSessionIdValid();
+ /**
+ *
+ * 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
+ *
+ */
- /**
- * 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 isRequestedSessionIdValid();
+
+
+
- public 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
+ *
+ */
- /**
- * 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
- */
+ public boolean isRequestedSessionIdFromCookie();
+
+
+
- public boolean isRequestedSessionIdFromURL();
+ /**
+ *
+ * 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
+ *
+ */
+
+ public boolean isRequestedSessionIdFromURL();
+
+
+
+
+
+ /**
+ *
+ * @deprecated As of Version 2.1 of the Java Servlet
+ * API, use {@link #isRequestedSessionIdFromURL}
+ * instead.
+ *
+ */
- /**
- * @deprecated As of Version 2.1 of the Java Servlet API, use
- * {@link #isRequestedSessionIdFromURL} instead.
- */
+ public boolean isRequestedSessionIdFromUrl();
- public boolean isRequestedSessionIdFromUrl();
+
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletRequestWrapper.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletRequestWrapper.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletRequestWrapper.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,290 +1,263 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet.http;
import javax.servlet.ServletRequestWrapper;
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
+ *
+ * @see javax.servlet.http.HttpServletRequest
+ * @since v 2.3
+ *
*/
-public class HttpServletRequestWrapper extends ServletRequestWrapper implements HttpServletRequest
-{
- /**
- * Constructs a request object wrapping the given request.
- *
- * @throws java.lang.IllegalArgumentException
- * if the request is null
- */
- public HttpServletRequestWrapper(HttpServletRequest request)
- {
- super(request);
- }
+public class HttpServletRequestWrapper extends ServletRequestWrapper implements HttpServletRequest {
- private HttpServletRequest _getHttpServletRequest()
- {
- return (HttpServletRequest) super.getRequest();
- }
+ /**
+ * Constructs a request object wrapping the given request.
+ * @throws java.lang.IllegalArgumentException if the request is null
+ */
+ public HttpServletRequestWrapper(HttpServletRequest request) {
+ super(request);
+ }
+
+ private HttpServletRequest _getHttpServletRequest() {
+ return (HttpServletRequest) super.getRequest();
+ }
- /**
- * The default behavior of this method is to return getAuthType() on the
- * wrapped request object.
- */
+ /**
+ * The default behavior of this method is to return getAuthType()
+ * on the wrapped request object.
+ */
- public String getAuthType()
- {
- return this._getHttpServletRequest().getAuthType();
- }
+ public String getAuthType() {
+ return this._getHttpServletRequest().getAuthType();
+ }
+
+ /**
+ * The default behavior of this method is to return getCookies()
+ * on the wrapped request object.
+ */
+ public Cookie[] getCookies() {
+ return this._getHttpServletRequest().getCookies();
+ }
- /**
- * The default behavior of this method is to return getCookies() on the
- * wrapped request object.
- */
- public Cookie[] getCookies()
- {
- return this._getHttpServletRequest().getCookies();
- }
+ /**
+ * The default behavior of this method is to return getDateHeader(String name)
+ * on the wrapped request object.
+ */
+ public long getDateHeader(String name) {
+ return this._getHttpServletRequest().getDateHeader(name);
+ }
+
+ /**
+ * The default behavior of this method is to return getHeader(String name)
+ * on the wrapped request object.
+ */
+ public String getHeader(String name) {
+ return this._getHttpServletRequest().getHeader(name);
+ }
+
+ /**
+ * The default behavior of this method is to return getHeaders(String name)
+ * on the wrapped request object.
+ */
+ public Enumeration getHeaders(String name) {
+ return this._getHttpServletRequest().getHeaders(name);
+ }
- /**
- * The default behavior of this method is to return getDateHeader(String
- * name) on the wrapped request object.
- */
- public long getDateHeader(String name)
- {
- return this._getHttpServletRequest().getDateHeader(name);
- }
+ /**
+ * The default behavior of this method is to return getHeaderNames()
+ * on the wrapped request object.
+ */
+
+ public Enumeration getHeaderNames() {
+ return this._getHttpServletRequest().getHeaderNames();
+ }
+
+ /**
+ * The default behavior of this method is to return getIntHeader(String name)
+ * on the wrapped request object.
+ */
- /**
- * 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);
- }
+ public int getIntHeader(String name) {
+ return this._getHttpServletRequest().getIntHeader(name);
+ }
+
+ /**
+ * The default behavior of this method is to return getMethod()
+ * on the wrapped request object.
+ */
+ public String getMethod() {
+ return this._getHttpServletRequest().getMethod();
+ }
+
+ /**
+ * The default behavior of this method is to return getPathInfo()
+ * on the wrapped request object.
+ */
+ public String getPathInfo() {
+ return this._getHttpServletRequest().getPathInfo();
+ }
- /**
- * The default behavior of this method is to return getHeaders(String name)
- * on the wrapped request object.
- */
- public Enumeration getHeaders(String name)
- {
- return this._getHttpServletRequest().getHeaders(name);
- }
+ /**
+ * The default behavior of this method is to return getPathTranslated()
+ * on the wrapped request object.
+ */
- /**
- * The default behavior of this method is to return getHeaderNames() on the
- * wrapped request object.
- */
+ public String getPathTranslated() {
+ return this._getHttpServletRequest().getPathTranslated();
+ }
- public Enumeration getHeaderNames()
- {
- return this._getHttpServletRequest().getHeaderNames();
- }
+ /**
+ * The default behavior of this method is to return getContextPath()
+ * on the wrapped request object.
+ */
+ public String getContextPath() {
+ return this._getHttpServletRequest().getContextPath();
+ }
+
+ /**
+ * The default behavior of this method is to return getQueryString()
+ * on the wrapped request object.
+ */
+ public String getQueryString() {
+ return this._getHttpServletRequest().getQueryString();
+ }
+
+ /**
+ * The default behavior of this method is to return getRemoteUser()
+ * on the wrapped request object.
+ */
+ public String getRemoteUser() {
+ return this._getHttpServletRequest().getRemoteUser();
+ }
+
+
+ /**
+ * The default behavior of this method is to return isUserInRole(String role)
+ * on the wrapped request object.
+ */
+ public boolean isUserInRole(String role) {
+ return this._getHttpServletRequest().isUserInRole(role);
+ }
+
+
+
+ /**
+ * The default behavior of this method is to return getUserPrincipal()
+ * on the wrapped request object.
+ */
+ public java.security.Principal getUserPrincipal() {
+ return this._getHttpServletRequest().getUserPrincipal();
+ }
+
+
+ /**
+ * The default behavior of this method is to return getRequestedSessionId()
+ * on the wrapped request object.
+ */
+ public String getRequestedSessionId() {
+ return this._getHttpServletRequest().getRequestedSessionId();
+ }
+
+ /**
+ * The default behavior of this method is to return getRequestURI()
+ * on the wrapped request object.
+ */
+ public String getRequestURI() {
+ return this._getHttpServletRequest().getRequestURI();
+ }
+ /**
+ * The default behavior of this method is to return getRequestURL()
+ * on the wrapped request object.
+ */
+ public StringBuffer getRequestURL() {
+ return this._getHttpServletRequest().getRequestURL();
+ }
+
+
+ /**
+ * The default behavior of this method is to return getServletPath()
+ * on the wrapped request object.
+ */
+ public String getServletPath() {
+ return this._getHttpServletRequest().getServletPath();
+ }
+
+
+ /**
+ * The default behavior of this method is to return getSession(boolean create)
+ * on the wrapped request object.
+ */
+ public HttpSession getSession(boolean create) {
+ return this._getHttpServletRequest().getSession(create);
+ }
+
+ /**
+ * The default behavior of this method is to return getSession()
+ * on the wrapped request object.
+ */
+ public HttpSession getSession() {
+ return this._getHttpServletRequest().getSession();
+ }
+
+ /**
+ * The default behavior of this method is to return isRequestedSessionIdValid()
+ * on the wrapped request object.
+ */
- /**
- * The default behavior of this method is to return getIntHeader(String name)
- * on the wrapped request object.
- */
+ public boolean isRequestedSessionIdValid() {
+ return this._getHttpServletRequest().isRequestedSessionIdValid();
+ }
+
+
+ /**
+ * The default behavior of this method is to return isRequestedSessionIdFromCookie()
+ * on the wrapped request object.
+ */
+ public boolean isRequestedSessionIdFromCookie() {
+ return this._getHttpServletRequest().isRequestedSessionIdFromCookie();
+ }
+
+ /**
+ * The default behavior of this method is to return isRequestedSessionIdFromURL()
+ * on the wrapped request object.
+ */
+ public boolean isRequestedSessionIdFromURL() {
+ return this._getHttpServletRequest().isRequestedSessionIdFromURL();
+ }
+
+ /**
+ * The default behavior of this method is to return isRequestedSessionIdFromUrl()
+ * on the wrapped request object.
+ */
+ public boolean isRequestedSessionIdFromUrl() {
+ return this._getHttpServletRequest().isRequestedSessionIdFromUrl();
+ }
- public int getIntHeader(String name)
- {
- return this._getHttpServletRequest().getIntHeader(name);
- }
- /**
- * The default behavior of this method is to return getMethod() on the
- * wrapped request object.
- */
- public String getMethod()
- {
- return this._getHttpServletRequest().getMethod();
- }
-
- /**
- * The default behavior of this method is to return getPathInfo() on the
- * wrapped request object.
- */
- public String getPathInfo()
- {
- return this._getHttpServletRequest().getPathInfo();
- }
-
- /**
- * The default behavior of this method is to return getPathTranslated() on
- * the wrapped request object.
- */
-
- public String getPathTranslated()
- {
- return this._getHttpServletRequest().getPathTranslated();
- }
-
- /**
- * The default behavior of this method is to return getContextPath() on the
- * wrapped request object.
- */
- public String getContextPath()
- {
- return this._getHttpServletRequest().getContextPath();
- }
-
- /**
- * The default behavior of this method is to return getQueryString() on the
- * wrapped request object.
- */
- public String getQueryString()
- {
- return this._getHttpServletRequest().getQueryString();
- }
-
- /**
- * The default behavior of this method is to return getRemoteUser() on the
- * wrapped request object.
- */
- public String getRemoteUser()
- {
- return this._getHttpServletRequest().getRemoteUser();
- }
-
- /**
- * The default behavior of this method is to return isUserInRole(String role)
- * on the wrapped request object.
- */
- public boolean isUserInRole(String role)
- {
- return this._getHttpServletRequest().isUserInRole(role);
- }
-
- /**
- * The default behavior of this method is to return getUserPrincipal() on the
- * wrapped request object.
- */
- public java.security.Principal getUserPrincipal()
- {
- return this._getHttpServletRequest().getUserPrincipal();
- }
-
- /**
- * The default behavior of this method is to return getRequestedSessionId()
- * on the wrapped request object.
- */
- public String getRequestedSessionId()
- {
- return this._getHttpServletRequest().getRequestedSessionId();
- }
-
- /**
- * The default behavior of this method is to return getRequestURI() on the
- * wrapped request object.
- */
- public String getRequestURI()
- {
- return this._getHttpServletRequest().getRequestURI();
- }
-
- /**
- * The default behavior of this method is to return getRequestURL() on the
- * wrapped request object.
- */
- public StringBuffer getRequestURL()
- {
- return this._getHttpServletRequest().getRequestURL();
- }
-
- /**
- * The default behavior of this method is to return getServletPath() on the
- * wrapped request object.
- */
- public String getServletPath()
- {
- return this._getHttpServletRequest().getServletPath();
- }
-
- /**
- * The default behavior of this method is to return getSession(boolean
- * create) on the wrapped request object.
- */
- public HttpSession getSession(boolean create)
- {
- return this._getHttpServletRequest().getSession(create);
- }
-
- /**
- * The default behavior of this method is to return getSession() on the
- * wrapped request object.
- */
- public HttpSession getSession()
- {
- return this._getHttpServletRequest().getSession();
- }
-
- /**
- * The default behavior of this method is to return
- * isRequestedSessionIdValid() on the wrapped request object.
- */
-
- public boolean isRequestedSessionIdValid()
- {
- return this._getHttpServletRequest().isRequestedSessionIdValid();
- }
-
- /**
- * The default behavior of this method is to return
- * isRequestedSessionIdFromCookie() on the wrapped request object.
- */
- public boolean isRequestedSessionIdFromCookie()
- {
- return this._getHttpServletRequest().isRequestedSessionIdFromCookie();
- }
-
- /**
- * The default behavior of this method is to return
- * isRequestedSessionIdFromURL() on the wrapped request object.
- */
- public boolean isRequestedSessionIdFromURL()
- {
- return this._getHttpServletRequest().isRequestedSessionIdFromURL();
- }
-
- /**
- * The default behavior of this method is to return
- * isRequestedSessionIdFromUrl() on the wrapped request object. *
- *
- * @deprecated As of Version 2.1 of the Java Servlet API, use
- * {@link #isRequestedSessionIdFromURL} instead.
- */
- @Deprecated
- public boolean isRequestedSessionIdFromUrl()
- {
- return this._getHttpServletRequest().isRequestedSessionIdFromUrl();
- }
-
+
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletResponse.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletResponse.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletResponse.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,24 +1,19 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet.http;
import java.io.IOException;
@@ -26,596 +21,617 @@
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>
- * 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).
+ * functionality in sending a response. For example, it has methods
+ * to access HTTP headers and cookies.
+ *
+ * <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
- * @see javax.servlet.ServletResponse
+ * @author Various
+ * @version $Version$
+ *
+ * @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);
+public interface HttpServletResponse extends ServletResponse {
- /**
- * 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
- */
+ /**
+ * 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 boolean containsHeader(String name);
+ public void addCookie(Cookie cookie);
- /**
- * 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.
- */
+ /**
+ * 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 String encodeURL(String url);
+ public boolean containsHeader(String name);
- /**
- * 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
- */
+ /**
+ * 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 encodeRedirectURL(String url);
+ public String encodeURL(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.
- */
+ /**
+ * 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 encodeUrl(String url);
+ public String encodeRedirectURL(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.
- */
+ /**
+ * @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 encodeRedirectUrl(String url);
+ 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.
+ */
- /**
- * 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 String encodeRedirectUrl(String url);
- public void sendError(int sc, String msg) 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.
+ *
+ * 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
- */
+ /**
+ * 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;
+ 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
- */
+ /**
+ * 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;
+ 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
+ */
- /**
- * 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 setDateHeader(String name, long date);
+ 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
+ */
- /**
- * 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 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 addDateHeader(String name, long date);
+ public void addHeader(String name, String value);
- /**
- * 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
- */
+ /**
+ * 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 setHeader(String name, String value);
+ public void setIntHeader(String name, int 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
- */
+ /**
+ * 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 addHeader(String name, String value);
+ public void addIntHeader(String name, int 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);
+
+ /**
+ * 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
+ */
- /**
- * 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 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 addIntHeader(String name, int value);
+ public void setStatus(int sc, String sm);
- /**
- * 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
- */
+
+ /*
+ * Server status codes; see RFC 2068.
+ */
- public void setStatus(int sc);
+ /**
+ * Status code (100) indicating the client can continue.
+ */
- /**
- * @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 static final int SC_CONTINUE = 100;
- public void setStatus(int sc, String sm);
+
+ /**
+ * Status code (101) indicating the server is switching protocols
+ * according to Upgrade header.
+ */
- /*
- * Server status codes; see RFC 2068.
- */
+ public static final int SC_SWITCHING_PROTOCOLS = 101;
- /**
- * Status code (100) indicating the client can continue.
- */
+ /**
+ * Status code (200) indicating the request succeeded normally.
+ */
- public static final int SC_CONTINUE = 100;
+ public static final int SC_OK = 200;
- /**
- * Status code (101) indicating the server is switching protocols according
- * to Upgrade header.
- */
+ /**
+ * Status code (201) indicating the request succeeded and created
+ * a new resource on the server.
+ */
- public static final int SC_SWITCHING_PROTOCOLS = 101;
+ public static final int SC_CREATED = 201;
- /**
- * Status code (200) indicating the request succeeded normally.
- */
+ /**
+ * Status code (202) indicating that a request was accepted for
+ * processing, but was not completed.
+ */
- public static final int SC_OK = 200;
+ public static final int SC_ACCEPTED = 202;
- /**
- * Status code (201) indicating the request succeeded and created a new
- * resource on the server.
- */
+ /**
+ * Status code (203) indicating that the meta information presented
+ * by the client did not originate from the server.
+ */
- public static final int SC_CREATED = 201;
+ public static final int SC_NON_AUTHORITATIVE_INFORMATION = 203;
- /**
- * Status code (202) indicating that a request was accepted for processing,
- * but was not completed.
- */
+ /**
+ * Status code (204) indicating that the request succeeded but that
+ * there was no new information to return.
+ */
- public static final int SC_ACCEPTED = 202;
+ public static final int SC_NO_CONTENT = 204;
- /**
- * Status code (203) indicating that the meta information presented by the
- * client did not originate from the server.
- */
+ /**
+ * 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_NON_AUTHORITATIVE_INFORMATION = 203;
+ public static final int SC_RESET_CONTENT = 205;
- /**
- * Status code (204) indicating that the request succeeded but that there was
- * no new information to return.
- */
+ /**
+ * Status code (206) indicating that the server has fulfilled
+ * the partial GET request for the resource.
+ */
- public static final int SC_NO_CONTENT = 204;
+ public static final int SC_PARTIAL_CONTENT = 206;
- /**
- * Status code (205) indicating that the agent <em>SHOULD</em> reset the
- * document view which caused the request to be sent.
- */
+ /**
+ * Status code (300) indicating that the requested resource
+ * corresponds to any one of a set of representations, each with
+ * its own specific location.
+ */
- public static final int SC_RESET_CONTENT = 205;
+ public static final int SC_MULTIPLE_CHOICES = 300;
- /**
- * Status code (206) indicating that the server has fulfilled the partial GET
- * request for the resource.
- */
+ /**
+ * Status code (301) indicating that the resource has permanently
+ * moved to a new location, and that future references should use a
+ * new URI with their requests.
+ */
- public static final int SC_PARTIAL_CONTENT = 206;
+ public static final int SC_MOVED_PERMANENTLY = 301;
- /**
- * Status code (300) indicating that the requested resource corresponds to
- * any one of a set of representations, each with its own specific location.
- */
+ /**
+ * 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.
+ *
+ * This definition is being retained for backwards compatibility.
+ * SC_FOUND is now the preferred definition.
+ */
- public static final int SC_MULTIPLE_CHOICES = 300;
+ public static final int SC_MOVED_TEMPORARILY = 302;
- /**
- * Status code (301) indicating that the resource has permanently moved to a
- * new location, and that future references should use a new URI with their
- * requests.
+ /**
+ * 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_MOVED_PERMANENTLY = 301;
+ public static final int SC_FOUND = 302;
- /**
- * 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. This definition is being retained for
- * backwards compatibility. SC_FOUND is now the preferred definition.
- */
+ /**
+ * Status code (303) indicating that the response to the request
+ * can be found under a different URI.
+ */
- public static final int SC_MOVED_TEMPORARILY = 302;
+ public static final int SC_SEE_OTHER = 303;
- /**
- * 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 (304) indicating that a conditional GET operation
+ * found that the resource was available and not modified.
+ */
- public static final int SC_FOUND = 302;
+ public static final int SC_NOT_MODIFIED = 304;
- /**
- * Status code (303) indicating that the response to the request can be found
- * under a different URI.
- */
+ /**
+ * Status code (305) indicating that the requested resource
+ * <em>MUST</em> be accessed through the proxy given by the
+ * <code><em>Location</em></code> field.
+ */
- public static final int SC_SEE_OTHER = 303;
+ public static final int SC_USE_PROXY = 305;
- /**
- * Status code (304) indicating that a conditional GET operation found that
- * the resource was available and not modified.
- */
+ /**
+ * 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>
+ * field in the response.
+ */
- public static final int SC_NOT_MODIFIED = 304;
+ public static final int SC_TEMPORARY_REDIRECT = 307;
- /**
- * Status code (305) indicating that the requested resource <em>MUST</em>
- * be accessed through the proxy given by the <code><em>Location</em></code>
- * field.
- */
+ /**
+ * Status code (400) indicating the request sent by the client was
+ * syntactically incorrect.
+ */
- public static final int SC_USE_PROXY = 305;
+ public static final int SC_BAD_REQUEST = 400;
- /**
- * 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> field in the response.
- */
+ /**
+ * Status code (401) indicating that the request requires HTTP
+ * authentication.
+ */
- public static final int SC_TEMPORARY_REDIRECT = 307;
+ public static final int SC_UNAUTHORIZED = 401;
- /**
- * Status code (400) indicating the request sent by the client was
- * syntactically incorrect.
- */
+ /**
+ * Status code (402) reserved for future use.
+ */
- public static final int SC_BAD_REQUEST = 400;
+ public static final int SC_PAYMENT_REQUIRED = 402;
- /**
- * Status code (401) indicating that the request requires HTTP
- * authentication.
- */
+ /**
+ * Status code (403) indicating the server understood the request
+ * but refused to fulfill it.
+ */
- public static final int SC_UNAUTHORIZED = 401;
+ public static final int SC_FORBIDDEN = 403;
- /**
- * Status code (402) reserved for future use.
- */
+ /**
+ * Status code (404) indicating that the requested resource is not
+ * available.
+ */
- public static final int SC_PAYMENT_REQUIRED = 402;
+ public static final int SC_NOT_FOUND = 404;
- /**
- * Status code (403) indicating the server understood the request but refused
- * to fulfill it.
- */
+ /**
+ * Status code (405) indicating that the method specified in the
+ * <code><em>Request-Line</em></code> is not allowed for the resource
+ * identified by the <code><em>Request-URI</em></code>.
+ */
- public static final int SC_FORBIDDEN = 403;
+ public static final int SC_METHOD_NOT_ALLOWED = 405;
- /**
- * Status code (404) indicating that the requested resource is not available.
- */
+ /**
+ * Status code (406) indicating that the resource identified by the
+ * request is only capable of generating response entities which have
+ * content characteristics not acceptable according to the accept
+ * headers sent in the request.
+ */
- public static final int SC_NOT_FOUND = 404;
+ public static final int SC_NOT_ACCEPTABLE = 406;
- /**
- * Status code (405) indicating that the method specified in the
- * <code><em>Request-Line</em></code> is not allowed for the resource
- * identified by the <code><em>Request-URI</em></code>.
- */
+ /**
+ * Status code (407) indicating that the client <em>MUST</em> first
+ * authenticate itself with the proxy.
+ */
- public static final int SC_METHOD_NOT_ALLOWED = 405;
+ public static final int SC_PROXY_AUTHENTICATION_REQUIRED = 407;
- /**
- * Status code (406) indicating that the resource identified by the request
- * is only capable of generating response entities which have content
- * characteristics not acceptable according to the accept headers sent in the
- * request.
- */
+ /**
+ * 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_NOT_ACCEPTABLE = 406;
+ public static final int SC_REQUEST_TIMEOUT = 408;
- /**
- * Status code (407) indicating that the client <em>MUST</em> first
- * authenticate itself with the proxy.
- */
+ /**
+ * Status code (409) indicating that the request could not be
+ * completed due to a conflict with the current state of the
+ * resource.
+ */
- public static final int SC_PROXY_AUTHENTICATION_REQUIRED = 407;
+ public static final int SC_CONFLICT = 409;
- /**
- * Status code (408) indicating that the client did not produce a request
- * within the time that the server was prepared to wait.
- */
+ /**
+ * Status code (410) indicating that the resource is no longer
+ * available at the server and no forwarding address is known.
+ * This condition <em>SHOULD</em> be considered permanent.
+ */
- public static final int SC_REQUEST_TIMEOUT = 408;
+ public static final int SC_GONE = 410;
- /**
- * Status code (409) indicating that the request could not be completed due
- * to a conflict with the current state of the resource.
- */
+ /**
+ * Status code (411) indicating that the request cannot be handled
+ * without a defined <code><em>Content-Length</em></code>.
+ */
- public static final int SC_CONFLICT = 409;
+ public static final int SC_LENGTH_REQUIRED = 411;
- /**
- * Status code (410) indicating that the resource is no longer available at
- * the server and no forwarding address is known. This condition
- * <em>SHOULD</em> be considered permanent.
- */
+ /**
+ * Status code (412) indicating that the precondition given in one
+ * or more of the request-header fields evaluated to false when it
+ * was tested on the server.
+ */
- public static final int SC_GONE = 410;
+ public static final int SC_PRECONDITION_FAILED = 412;
- /**
- * Status code (411) indicating that the request cannot be handled without a
- * defined <code><em>Content-Length</em></code>.
- */
+ /**
+ * Status code (413) indicating that the server is refusing to process
+ * the request because the request entity is larger than the server is
+ * willing or able to process.
+ */
- public static final int SC_LENGTH_REQUIRED = 411;
+ public static final int SC_REQUEST_ENTITY_TOO_LARGE = 413;
- /**
- * Status code (412) indicating that the precondition given in one or more of
- * the request-header fields evaluated to false when it was tested on the
- * server.
- */
+ /**
+ * Status code (414) indicating that the server is refusing to service
+ * the request because the <code><em>Request-URI</em></code> is longer
+ * than the server is willing to interpret.
+ */
- public static final int SC_PRECONDITION_FAILED = 412;
+ public static final int SC_REQUEST_URI_TOO_LONG = 414;
- /**
- * Status code (413) indicating that the server is refusing to process the
- * request because the request entity is larger than the server is willing or
- * able to process.
- */
+ /**
+ * Status code (415) indicating that the server is refusing to service
+ * the request because the entity of the request is in a format not
+ * supported by the requested resource for the requested method.
+ */
- public static final int SC_REQUEST_ENTITY_TOO_LARGE = 413;
+ public static final int SC_UNSUPPORTED_MEDIA_TYPE = 415;
- /**
- * Status code (414) indicating that the server is refusing to service the
- * request because the <code><em>Request-URI</em></code> is longer than
- * the server is willing to interpret.
- */
+ /**
+ * Status code (416) indicating that the server cannot serve the
+ * requested byte range.
+ */
- public static final int SC_REQUEST_URI_TOO_LONG = 414;
+ public static final int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
- /**
- * Status code (415) indicating that the server is refusing to service the
- * request because the entity of the request is in a format not supported by
- * the requested resource for the requested method.
- */
+ /**
+ * Status code (417) indicating that the server could not meet the
+ * expectation given in the Expect request header.
+ */
- public static final int SC_UNSUPPORTED_MEDIA_TYPE = 415;
+ public static final int SC_EXPECTATION_FAILED = 417;
- /**
- * Status code (416) indicating that the server cannot serve the requested
- * byte range.
- */
+ /**
+ * Status code (500) indicating an error inside the HTTP server
+ * which prevented it from fulfilling the request.
+ */
- public static final int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
+ public static final int SC_INTERNAL_SERVER_ERROR = 500;
- /**
- * Status code (417) indicating that the server could not meet the
- * expectation given in the Expect request header.
- */
+ /**
+ * Status code (501) indicating the HTTP server does not support
+ * the functionality needed to fulfill the request.
+ */
- public static final int SC_EXPECTATION_FAILED = 417;
+ public static final int SC_NOT_IMPLEMENTED = 501;
- /**
- * Status code (500) indicating an error inside the HTTP server which
- * prevented it from fulfilling the request.
- */
+ /**
+ * Status code (502) indicating that the HTTP server received an
+ * invalid response from a server it consulted when acting as a
+ * proxy or gateway.
+ */
- public static final int SC_INTERNAL_SERVER_ERROR = 500;
+ public static final int SC_BAD_GATEWAY = 502;
- /**
- * Status code (501) indicating the HTTP server does not support the
- * functionality needed to fulfill the request.
- */
+ /**
+ * Status code (503) indicating that the HTTP server is
+ * temporarily overloaded, and unable to handle the request.
+ */
- public static final int SC_NOT_IMPLEMENTED = 501;
+ public static final int SC_SERVICE_UNAVAILABLE = 503;
- /**
- * Status code (502) indicating that the HTTP server received an invalid
- * response from a server it consulted when acting as a proxy or gateway.
- */
+ /**
+ * Status code (504) indicating that the server did not receive
+ * a timely response from the upstream server while acting as
+ * a gateway or proxy.
+ */
- public static final int SC_BAD_GATEWAY = 502;
+ public static final int SC_GATEWAY_TIMEOUT = 504;
- /**
- * Status code (503) indicating that the HTTP server is temporarily
- * overloaded, and unable to handle the request.
- */
+ /**
+ * Status code (505) indicating that the server does not support
+ * or refuses to support the HTTP protocol version that was used
+ * in the request message.
+ */
- public static final int SC_SERVICE_UNAVAILABLE = 503;
-
- /**
- * Status code (504) indicating that the server did not receive a timely
- * response from the upstream server while acting as a gateway or proxy.
- */
-
- public static final int SC_GATEWAY_TIMEOUT = 504;
-
- /**
- * Status code (505) indicating that the server does not support or refuses
- * to support the HTTP protocol version that was used in the request message.
- */
-
- public static final int SC_HTTP_VERSION_NOT_SUPPORTED = 505;
+ public static final int SC_HTTP_VERSION_NOT_SUPPORTED = 505;
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletResponseWrapper.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletResponseWrapper.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpServletResponseWrapper.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,24 +1,19 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet.http;
import java.io.IOException;
@@ -26,202 +21,176 @@
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
- * @since v 2.3
- * @see javax.servlet.http.HttpServletResponse
+ * 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
+ *
*/
-public class HttpServletResponseWrapper extends ServletResponseWrapper implements 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
+ * @throws java.lang.IllegalArgumentException if the response is null
*/
- public HttpServletResponseWrapper(HttpServletResponse response)
- {
- super(response);
- }
+ public HttpServletResponseWrapper(HttpServletResponse response) {
+ super(response);
+ }
+
+ 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);
+ }
- private HttpServletResponse _getHttpServletResponse()
- {
- return (HttpServletResponse) super.getResponse();
- }
+ /**
+ * The default behavior of this method is to call containsHeader(String name)
+ * on the wrapped response object.
+ */
- /**
- * 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);
- }
+
+ public boolean containsHeader(String name) {
+ return this._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);
+ }
- /**
- * The default behavior of this method is to call containsHeader(String name)
- * on the wrapped response object.
- */
+ /**
+ * 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);
+ }
- public boolean containsHeader(String name)
- {
- return this._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);
+ }
+
+ /**
+ * 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);
+ }
+
+ /**
+ * 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);
+ }
- /**
- * 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);
- }
+ /**
+ * The default behavior of this method is to call sendError(int sc)
+ * on the wrapped response object.
+ */
- /**
- * 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);
- }
- /**
- * The default behavior of this method is to call encodeUrl(String url) on
- * the wrapped response object. *
- *
- * @deprecated As of version 2.1, use encodeURL(String url) instead
- */
- @Deprecated
- public String encodeUrl(String url)
- {
- return this._getHttpServletResponse().encodeUrl(url);
- }
+ public void sendError(int sc) throws IOException {
+ this._getHttpServletResponse().sendError(sc);
+ }
- /**
- * The default behavior of this method is to return encodeRedirectUrl(String
- * url) on the wrapped response object.
- *
- * @deprecated As of version 2.1, use encodeURL(String url) instead
- */
- @Deprecated
- public String encodeRedirectUrl(String url)
- {
- return this._getHttpServletResponse().encodeRedirectUrl(url);
- }
+ /**
+ * The default behavior of this method is to return sendRedirect(String location)
+ * on the wrapped response object.
+ */
+ public void sendRedirect(String location) throws IOException {
+ this._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);
+ }
+
+ /**
+ * 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);
+ }
+
+ /**
+ * 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);
+ }
+
+ /**
+ * 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);
+ }
+
+ /**
+ * 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);
+ }
+
+ /**
+ * 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);
+ }
- /**
- * 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);
- }
+ /**
+ * The default behavior of this method is to call setStatus(int sc)
+ * on the wrapped response object.
+ */
- /**
- * The default behavior of this method is to call sendError(int sc) on the
- * wrapped response object.
- */
- public void sendError(int sc) throws IOException
- {
- this._getHttpServletResponse().sendError(sc);
- }
+ public void setStatus(int sc) {
+ this._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);
+ }
- /**
- * The default behavior of this method is to return sendRedirect(String
- * location) on the wrapped response object.
- */
- public void sendRedirect(String location) throws IOException
- {
- this._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);
- }
-
- /**
- * 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);
- }
-
- /**
- * 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);
- }
-
- /**
- * 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);
- }
-
- /**
- * 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);
- }
-
- /**
- * 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);
- }
-
- /**
- * The default behavior of this method is to call setStatus(int sc) on the
- * wrapped response object.
- */
-
- public void setStatus(int sc)
- {
- this._getHttpServletResponse().setStatus(sc);
- }
-
- /**
- * The default behavior of this method is to call setStatus(int sc, String
- * sm) on the wrapped response object.
- *
- * @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.
- */
- @Deprecated
- public void setStatus(int sc, String sm)
- {
- this._getHttpServletResponse().setStatus(sc, sm);
- }
-
+
}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSession.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSession.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSession.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,299 +1,424 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet.http;
import java.util.Enumeration;
import javax.servlet.ServletContext;
/**
- * Provides a way to identify a user across more than one page request or visit
- * to a Web site and to store information about that user.
- * <p>
- * The servlet container uses this interface to create a session between an HTTP
- * client and an HTTP server. The session persists for a specified time period,
- * across more than one connection or page request from the user. A session
- * usually corresponds to one user, who may visit a site many times. The server
- * can maintain a session in many ways such as using cookies or rewriting URLs.
- * <p>
- * This interface allows servlets to
+ *
+ * Provides a way to identify a user across more than one page
+ * request or visit to a Web site and to store information about that user.
+ *
+ * <p>The servlet container uses this interface to create a session
+ * between an HTTP client and an HTTP server. The session persists
+ * for a specified time period, across more than one connection or
+ * page request from the user. A session usually corresponds to one
+ * user, who may visit a site many times. The server can maintain a
+ * session in many ways such as using cookies or rewriting URLs.
+ *
+ * <p>This interface allows servlets to
* <ul>
- * <li>View and manipulate information about a session, such as the session
- * identifier, creation time, and last accessed time
- * <li>Bind objects to sessions, allowing user information to persist across
- * multiple user connections
+ * <li>View and manipulate information about a session, such as
+ * the session identifier, creation time, and last accessed time
+ * <li>Bind objects to sessions, allowing user information to persist
+ * across multiple user connections
* </ul>
- * <p>
- * When an application stores an object in or removes an object from a session,
- * the session checks whether the object implements
- * {@link HttpSessionBindingListener}. If it does, the servlet notifies the
- * object that it has been bound to or unbound from the session. Notifications
- * are sent after the binding methods complete. For session that are invalidated
- * or expire, notifications are sent after the session has been invalidated or
- * expired.
- * <p>
- * When container migrates a session between VMs in a distributed container
- * setting, all session attributes implementing the
- * {@link HttpSessionActivationListener} interface are notified.
- * <p>
- * A servlet should be able to handle cases in which the client does not choose
- * to join a session, such as when cookies are intentionally turned off. Until
- * the client joins the session, <code>isNew</code> returns <code>true</code>.
- * If the client chooses not to join the session, <code>getSession</code> will
- * return a different session on each request, and <code>isNew</code> will
- * always return <code>true</code>.
- * <p>
- * Session information is scoped only to the current web application (<code>ServletContext</code>),
- * so information stored in one context will not be directly visible in another.
+ *
+ * <p>When an application stores an object in or removes an object from a
+ * session, the session checks whether the object implements
+ * {@link HttpSessionBindingListener}. If it does,
+ * the servlet notifies the object that it has been bound to or unbound
+ * from the session. Notifications are sent after the binding methods complete.
+ * For session that are invalidated or expire, notifications are sent after
+ * the session has been invalidated or expired.
+ *
+ * <p> When container migrates a session between VMs in a distributed container
+ * setting, all session attributes implementing the {@link HttpSessionActivationListener}
+ * interface are notified.
*
- * @author Various
- * @see HttpSessionBindingListener
- * @see HttpSessionContext
+ * <p>A servlet should be able to handle cases in which
+ * the client does not choose to join a session, such as when cookies are
+ * intentionally turned off. Until the client joins the session,
+ * <code>isNew</code> returns <code>true</code>. If the client chooses
+ * not to join
+ * the session, <code>getSession</code> will return a different session
+ * on each request, and <code>isNew</code> will always return
+ * <code>true</code>.
+ *
+ * <p>Session information is scoped only to the current web application
+ * (<code>ServletContext</code>), so information stored in one context
+ * will not be directly visible in another.
+ *
+ * @author Various
+ * @version $Version$
+ *
+ *
+ * @see HttpSessionBindingListener
+ * @see HttpSessionContext
+ *
*/
-public interface HttpSession
-{
+public interface HttpSession {
- /**
- * Returns the time when this session was created, measured in milliseconds
- * since midnight January 1, 1970 GMT.
- *
- * @return a <code>long</code> specifying when this session was created,
- * expressed in milliseconds since 1/1/1970 GMT
- * @exception IllegalStateException
- * if this method is called on an invalidated session
- */
- public long getCreationTime();
- /**
- * Returns a string containing the unique identifier assigned to this
- * session. The identifier is assigned by the servlet container and is
- * implementation dependent.
- *
- * @return a string specifying the identifier assigned to this session
- */
- public String getId();
+ /**
+ *
+ * Returns the time when this session was created, measured
+ * in milliseconds since midnight January 1, 1970 GMT.
+ *
+ * @return a <code>long</code> specifying
+ * when this session was created,
+ * expressed in
+ * milliseconds since 1/1/1970 GMT
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ *
+ */
- /**
- * Returns the last time the client sent a request associated with this
- * session, as the number of milliseconds since midnight January 1, 1970 GMT,
- * and marked by the time the container received the request.
- * <p>
- * Actions that your application takes, such as getting or setting a value
- * associated with the session, do not affect the access time.
- *
- * @return a <code>long</code> representing the last time the client sent a
- * request associated with this session, expressed in milliseconds
- * since 1/1/1970 GMT
- * @exception IllegalStateException
- * if this method is called on an invalidated session
- */
+ public long getCreationTime();
+
+
+
+
+ /**
+ *
+ * Returns a string containing the unique identifier assigned
+ * to this session. The identifier is assigned
+ * by the servlet container and is implementation dependent.
+ *
+ * @return a string specifying the identifier
+ * assigned to this session
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ *
+ */
- public long getLastAccessedTime();
+ public String getId();
+
+
+
- /**
+ /**
+ *
+ * Returns the last time the client sent a request associated with
+ * this session, as the number of milliseconds since midnight
+ * January 1, 1970 GMT, and marked by the time the container received the request.
+ *
+ * <p>Actions that your application takes, such as getting or setting
+ * a value associated with the session, do not affect the access
+ * time.
+ *
+ * @return a <code>long</code>
+ * representing the last time
+ * the client sent a request associated
+ * with this session, expressed in
+ * milliseconds since 1/1/1970 GMT
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ *
+ */
+
+ public long getLastAccessedTime();
+
+
+ /**
* Returns the ServletContext to which this session belongs.
- *
+ *
* @return The ServletContext object for the web application
* @since 2.3
*/
- public ServletContext getServletContext();
+ public ServletContext getServletContext();
- /**
- * Specifies the time, in seconds, between client requests before the servlet
- * container will invalidate this session. A negative time indicates the
- * session should never timeout.
- *
- * @param interval
- * An integer specifying the number of seconds
- */
- public void setMaxInactiveInterval(int interval);
+ /**
+ *
+ * Specifies the time, in seconds, between client requests before the
+ * servlet container will invalidate this session. A negative time
+ * indicates the session should never timeout.
+ *
+ * @param interval An integer specifying the number
+ * of seconds
+ *
+ */
+
+ public void setMaxInactiveInterval(int interval);
+
+
+
/**
- * Returns the maximum time interval, in seconds, that the servlet container
- * will keep this session open between client accesses. After this interval,
- * the servlet container will invalidate the session. The maximum time
- * interval can be set with the <code>setMaxInactiveInterval</code> method.
+ * Returns the maximum time interval, in seconds, that
+ * the servlet container will keep this session open between
+ * client accesses. After this interval, the servlet container
+ * will invalidate the session. The maximum time interval can be set
+ * with the <code>setMaxInactiveInterval</code> method.
* A negative time indicates the session should never timeout.
- *
- * @return an integer specifying the number of seconds this session remains
- * open between client requests
- * @see #setMaxInactiveInterval
+ *
+ *
+ * @return an integer specifying the number of
+ * seconds this session remains open
+ * between client requests
+ *
+ * @see #setMaxInactiveInterval
+ *
+ *
*/
- public int getMaxInactiveInterval();
+ public int getMaxInactiveInterval();
+
+
+
/**
- * @deprecated As of Version 2.1, this method is deprecated and has no
- * replacement. It will be removed in a future version of the
- * Java Servlet API.
+ *
+ * @deprecated As of Version 2.1, this method is
+ * deprecated and has no replacement.
+ * It will be removed in a future
+ * version of the Java Servlet API.
+ *
*/
- public HttpSessionContext getSessionContext();
+ public HttpSessionContext getSessionContext();
+
+
+
+
+ /**
+ *
+ * Returns the object bound with the specified name in this session, or
+ * <code>null</code> if no object is bound under the name.
+ *
+ * @param name a string specifying the name of the object
+ *
+ * @return the object with the specified name
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ *
+ */
+
+ public Object getAttribute(String name);
+
+
+
+
+ /**
+ *
+ * @deprecated As of Version 2.2, this method is
+ * replaced by {@link #getAttribute}.
+ *
+ * @param name a string specifying the name of the object
+ *
+ * @return the object with the specified name
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ *
+ */
+
+ public Object getValue(String name);
+
+
+
- /**
- * Returns the object bound with the specified name in this session, or
- * <code>null</code> if no object is bound under the name.
- *
- * @param name
- * a string specifying the name of the object
- * @return the object with the specified name
- * @exception IllegalStateException
- * if this method is called on an invalidated session
- */
+ /**
+ *
+ * Returns an <code>Enumeration</code> of <code>String</code> objects
+ * containing the names of all the objects bound to this session.
+ *
+ * @return an <code>Enumeration</code> of
+ * <code>String</code> objects specifying the
+ * names of all the objects bound to
+ * this session
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ *
+ */
+
+ public Enumeration getAttributeNames();
+
+
+
- public Object getAttribute(String name);
+ /**
+ *
+ * @deprecated As of Version 2.2, this method is
+ * replaced by {@link #getAttributeNames}
+ *
+ * @return an array of <code>String</code>
+ * objects specifying the
+ * names of all the objects bound to
+ * this session
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ *
+ */
+
+ public String[] getValueNames();
+
+
+
- /**
- * @deprecated As of Version 2.2, this method is replaced by
- * {@link #getAttribute}.
- * @param name
- * a string specifying the name of the object
- * @return the object with the specified name
- * @exception IllegalStateException
- * if this method is called on an invalidated session
- */
+ /**
+ * Binds an object to this session, using the name specified.
+ * If an object of the same name is already bound to the session,
+ * the object is replaced.
+ *
+ * <p>After this method executes, and if the new object
+ * implements <code>HttpSessionBindingListener</code>,
+ * the container calls
+ * <code>HttpSessionBindingListener.valueBound</code>. The container then
+ * notifies any <code>HttpSessionAttributeListener</code>s in the web
+ * application.
+
+ * <p>If an object was already bound to this session of this name
+ * that implements <code>HttpSessionBindingListener</code>, its
+ * <code>HttpSessionBindingListener.valueUnbound</code> method is called.
+ *
+ * <p>If the value passed in is null, this has the same effect as calling
+ * <code>removeAttribute()<code>.
+ *
+ *
+ * @param name the name to which the object is bound;
+ * cannot be null
+ *
+ * @param value the object to be bound
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ *
+ */
+
+ public void setAttribute(String name, Object value);
+
- public Object getValue(String name);
- /**
- * Returns an <code>Enumeration</code> of <code>String</code> objects
- * containing the names of all the objects bound to this session.
- *
- * @return an <code>Enumeration</code> of <code>String</code> objects
- * specifying the names of all the objects bound to this session
- * @exception IllegalStateException
- * if this method is called on an invalidated session
- */
- public Enumeration getAttributeNames();
+
+ /**
+ *
+ * @deprecated As of Version 2.2, this method is
+ * replaced by {@link #setAttribute}
+ *
+ * @param name the name to which the object is bound;
+ * cannot be null
+ *
+ * @param value the object to be bound; cannot be null
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ *
+ */
+
+ public void putValue(String name, Object value);
- /**
- * @deprecated As of Version 2.2, this method is replaced by
- * {@link #getAttributeNames}
- * @return an array of <code>String</code> objects specifying the names of
- * all the objects bound to this session
- * @exception IllegalStateException
- * if this method is called on an invalidated session
- */
- public String[] getValueNames();
- /**
- * Binds an object to this session, using the name specified. If an object of
- * the same name is already bound to the session, the object is replaced.
- * <p>
- * After this method executes, and if the new object implements
- * <code>HttpSessionBindingListener</code>, the container calls
- * <code>HttpSessionBindingListener.valueBound</code>. The container then
- * notifies any <code>HttpSessionAttributeListener</code>s in the web
- * application.
- * <p>
- * If an object was already bound to this session of this name that
- * implements <code>HttpSessionBindingListener</code>, its
- * <code>HttpSessionBindingListener.valueUnbound</code> method is called.
- * <p>
- * If the value passed in is null, this has the same effect as calling
- * <code>removeAttribute()<code>.
- *
- *
- * @param name the name to which the object is bound;
- * cannot be null
- *
- * @param value the object to be bound
- *
- * @exception IllegalStateException if this method is called on an
- * invalidated session
- */
- public void setAttribute(String name, Object value);
- /**
- * @deprecated As of Version 2.2, this method is replaced by
- * {@link #setAttribute}
- * @param name
- * the name to which the object is bound; cannot be null
- * @param value
- * the object to be bound; cannot be null
- * @exception IllegalStateException
- * if this method is called on an invalidated session
- */
+ /**
+ *
+ * Removes the object bound with the specified name from
+ * this session. If the session does not have an object
+ * bound with the specified name, this method does nothing.
+ *
+ * <p>After this method executes, and if the object
+ * implements <code>HttpSessionBindingListener</code>,
+ * the container calls
+ * <code>HttpSessionBindingListener.valueUnbound</code>. The container
+ * then notifies any <code>HttpSessionAttributeListener</code>s in the web
+ * application.
+ *
+ *
+ *
+ * @param name the name of the object to
+ * remove from this session
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ */
- public void putValue(String name, Object value);
+ public void removeAttribute(String name);
- /**
- * Removes the object bound with the specified name from this session. If the
- * session does not have an object bound with the specified name, this method
- * does nothing.
- * <p>
- * After this method executes, and if the object implements
- * <code>HttpSessionBindingListener</code>, the container calls
- * <code>HttpSessionBindingListener.valueUnbound</code>. The container
- * then notifies any <code>HttpSessionAttributeListener</code>s in the web
- * application.
- *
- * @param name
- * the name of the object to remove from this session
- * @exception IllegalStateException
- * if this method is called on an invalidated session
- */
- public void removeAttribute(String name);
- /**
- * @deprecated As of Version 2.2, this method is replaced by
- * {@link #removeAttribute}
- * @param name
- * the name of the object to remove from this session
- * @exception IllegalStateException
- * if this method is called on an invalidated session
- */
- public void removeValue(String name);
- /**
- * Invalidates this session then unbinds any objects bound to it.
- *
- * @exception IllegalStateException
- * if this method is called on an already invalidated session
- */
+ /**
+ *
+ * @deprecated As of Version 2.2, this method is
+ * replaced by {@link #removeAttribute}
+ *
+ * @param name the name of the object to
+ * remove from this session
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ */
- public void invalidate();
+ public void removeValue(String name);
- /**
- * Returns <code>true</code> if the client does not yet know about the
- * session or if the client chooses not to join the session. For example, if
- * the server used only cookie-based sessions, and the client had disabled
- * the use of cookies, then a session would be new on each request.
- *
- * @return <code>true</code> if the server has created a session, but the
- * client has not yet joined
- * @exception IllegalStateException
- * if this method is called on an already invalidated session
- */
- public boolean isNew();
+
+ /**
+ *
+ * Invalidates this session then unbinds any objects bound
+ * to it.
+ *
+ * @exception IllegalStateException if this method is called on an
+ * already invalidated session
+ *
+ */
+
+ public void invalidate();
+
+
+
+
+ /**
+ *
+ * Returns <code>true</code> if the client does not yet know about the
+ * session or if the client chooses not to join the session. For
+ * example, if the server used only cookie-based sessions, and
+ * the client had disabled the use of cookies, then a session would
+ * be new on each request.
+ *
+ * @return <code>true</code> if the
+ * server has created a session,
+ * but the client has not yet joined
+ *
+ * @exception IllegalStateException if this method is called on an
+ * already invalidated session
+ *
+ */
+
+ public boolean isNew();
+
+
+
}
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionActivationListener.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionActivationListener.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionActivationListener.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,44 +1,37 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet.http;
import java.util.EventListener;
-/**
- * Objects that are bound to a session may listen to container * events
- * notifying them that sessions will be passivated and that * session will be
- * activated. A container that migrates session between VMs * or persists
- * sessions is required to notify all attributes bound to sessions *
- * implementing HttpSessionActivationListener. *
- *
- * @since 2.3
- */
+ /** Objects that are bound to a session may listen to container
+ ** events notifying them that sessions will be passivated and that
+ ** session will be activated. A container that migrates session between VMs
+ ** or persists sessions is required to notify all attributes bound to sessions
+ ** implementing HttpSessionActivationListener.
+ **
+ * @since 2.3
+ */
+
+public interface HttpSessionActivationListener extends EventListener {
-public interface HttpSessionActivationListener extends EventListener
-{
+ /** Notification that the session is about to be passivated.*/
+ public void sessionWillPassivate(HttpSessionEvent se);
+ /** Notification that the session has just been activated.*/
+ public void sessionDidActivate(HttpSessionEvent se);
+}
- /** Notification that the session is about to be passivated. */
- public void sessionWillPassivate(HttpSessionEvent se);
-
- /** Notification that the session has just been activated. */
- public void sessionDidActivate(HttpSessionEvent se);
-}
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionAttributeListener.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionAttributeListener.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionAttributeListener.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,53 +1,36 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet.http;
import java.util.EventListener;
-/**
- * This listener interface can be implemented in order to get notifications of
- * changes to the attribute lists of sessions within this web application.
- *
- * @since v 2.3
- */
+ /** This listener interface can be implemented in order to
+ * get notifications of changes to the attribute lists of sessions within
+ * this web application.
+ * @since v 2.3
+*/
-public interface HttpSessionAttributeListener extends EventListener
-{
- /**
- * Notification that an attribute has been added to a session. Called after
- * the attribute is added.
- */
- public void attributeAdded(HttpSessionBindingEvent se);
+public interface HttpSessionAttributeListener extends EventListener {
+ /** Notification that an attribute has been added to a session. Called after the attribute is added.*/
+ public void attributeAdded ( HttpSessionBindingEvent se );
+ /** Notification that an attribute has been removed from a session. Called after the attribute is removed. */
+ public void attributeRemoved ( HttpSessionBindingEvent se );
+ /** Notification that an attribute has been replaced in a session. Called after the attribute is replaced. */
+ public void attributeReplaced ( HttpSessionBindingEvent se );
- /**
- * Notification that an attribute has been removed from a session. Called
- * after the attribute is removed.
- */
- public void attributeRemoved(HttpSessionBindingEvent se);
-
- /**
- * Notification that an attribute has been replaced in a session. Called
- * after the attribute is replaced.
- */
- public void attributeReplaced(HttpSessionBindingEvent se);
-
}
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionBindingEvent.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionBindingEvent.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionBindingEvent.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,125 +1,152 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
package javax.servlet.http;
+
+
/**
+ *
* Events of this type are either sent to an object that implements
- * {@link HttpSessionBindingListener} when it is bound or unbound from a
- * session, or to a {@link HttpSessionAttributeListener} that has been
- * configured in the deployment descriptor when any attribute is bound, unbound
- * or replaced in a session.
- * <p>
- * The session binds the object by a call to
- * <code>HttpSession.setAttribute</code> and unbinds the object by a call to
- * <code>HttpSession.removeAttribute</code>.
+ * {@link HttpSessionBindingListener} when it is bound or
+ * unbound from a session, or to a {@link HttpSessionAttributeListener}
+ * that has been configured in the deployment descriptor when any attribute is
+ * bound, unbound or replaced in a session.
+ *
+ * <p>The session binds the object by a call to
+ * <code>HttpSession.setAttribute</code> and unbinds the object
+ * by a call to <code>HttpSession.removeAttribute</code>.
+ *
+ *
+ *
+ * @author Various
+ * @version $Version$
*
- * @author Various
- * @see HttpSession
- * @see HttpSessionBindingListener
- * @see HttpSessionAttributeListener
+ * @see HttpSession
+ * @see HttpSessionBindingListener
+ * @see HttpSessionAttributeListener
*/
-public class HttpSessionBindingEvent extends HttpSessionEvent
-{
+public class HttpSessionBindingEvent extends HttpSessionEvent {
- /* The name to which the object is being bound or unbound */
- private String name;
- /* The object is being bound or unbound */
- private Object value;
+ /* The name to which the object is being bound or unbound */
- /**
- * Constructs an event that notifies an object that it has been bound to or
- * unbound from a session. To receive the event, the object must implement
- * {@link HttpSessionBindingListener}.
- *
- * @param session
- * the session to which the object is bound or unbound
- * @param name
- * the name with which the object is bound or unbound
- * @see #getName
- * @see #getSession
- */
+ private String name;
+
+ /* The object is being bound or unbound */
- public HttpSessionBindingEvent(HttpSession session, String name)
- {
- super(session);
- this.name = name;
- }
+ private Object value;
+
+
- /**
- * Constructs an event that notifies an object that it has been bound to or
- * unbound from a session. To receive the event, the object must implement
- * {@link HttpSessionBindingListener}.
- *
- * @param session
- * the session to which the object is bound or unbound
- * @param name
- * the name with which the object is bound or unbound
- * @see #getName
- * @see #getSession
- */
+ /**
+ *
+ * Constructs an event that notifies an object that it
+ * has been bound to or unbound from a session.
+ * To receive the event, the object must implement
+ * {@link HttpSessionBindingListener}.
+ *
+ *
+ *
+ * @param session the session to which the object is bound or unbound
+ *
+ * @param name the name with which the object is bound or unbound
+ *
+ * @see #getName
+ * @see #getSession
+ *
+ */
- public HttpSessionBindingEvent(HttpSession session, String name, Object value)
- {
- super(session);
- this.name = name;
- this.value = value;
- }
+ public HttpSessionBindingEvent(HttpSession session, String name) {
+ super(session);
+ this.name = name;
+ }
+
+ /**
+ *
+ * Constructs an event that notifies an object that it
+ * has been bound to or unbound from a session.
+ * To receive the event, the object must implement
+ * {@link HttpSessionBindingListener}.
+ *
+ *
+ *
+ * @param session the session to which the object is bound or unbound
+ *
+ * @param name the name with which the object is bound or unbound
+ *
+ * @see #getName
+ * @see #getSession
+ *
+ */
+
+ public HttpSessionBindingEvent(HttpSession session, String name, Object value) {
+ super(session);
+ this.name = name;
+ this.value = value;
+ }
+
+
+ /** Return the session that changed. */
+ public HttpSession getSession () {
+ return super.getSession();
+ }
+
+
+
+
+ /**
+ *
+ * Returns the name with which the attribute is bound to or
+ * unbound from the session.
+ *
+ *
+ * @return a string specifying the name with which
+ * the object is bound to or unbound from
+ * the session
+ *
+ *
+ */
- /** Return the session that changed. */
- public HttpSession getSession()
- {
- return super.getSession();
- }
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Returns the value of the attribute that has been added, removed or replaced.
+ * If the attribute was added (or bound), this is the value of the attribute. If the attribute was
+ * removed (or unbound), this is the value of the removed attribute. If the attribute was replaced, this
+ * is the old value of the attribute.
+ *
+ * @since 2.3
+ */
+
+ public Object getValue() {
+ return this.value;
+ }
+
+}
- /**
- * Returns the name with which the attribute is bound to or unbound from the
- * session.
- *
- * @return a string specifying the name with which the object is bound to or
- * unbound from the session
- */
- public String getName()
- {
- return name;
- }
- /**
- * Returns the value of the attribute that has been added, removed or
- * replaced. If the attribute was added (or bound), this is the value of the
- * attribute. If the attribute was removed (or unbound), this is the value of
- * the removed attribute. If the attribute was replaced, this is the old
- * value of the attribute.
- *
- * @since 2.3
- */
- public Object getValue()
- {
- return this.value;
- }
-}
+
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionBindingListener.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionBindingListener.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionBindingListener.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,63 +1,78 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
package javax.servlet.http;
import java.util.EventListener;
+
+
+
+
/**
- * Causes an object to be notified when it is bound to or unbound from a
- * session. The object is notified by an {@link HttpSessionBindingEvent} object.
- * This may be as a result of a servlet programmer explicitly unbinding an
- * attribute from a session, due to a session being invalidated, or due to a
- * session timing out.
- *
- * @author Various
+ * Causes an object to be notified when it is bound to
+ * or unbound from a session. The object is notified
+ * by an {@link HttpSessionBindingEvent} object. This may be as a result
+ * of a servlet programmer explicitly unbinding an attribute from a session,
+ * due to a session being invalidated, or due to a session timing out.
+ *
+ *
+ * @author Various
+ * @version $Version$
+ *
* @see HttpSession
* @see HttpSessionBindingEvent
+ *
*/
-public interface HttpSessionBindingListener extends EventListener
-{
+public interface HttpSessionBindingListener extends EventListener {
- /**
- * Notifies the object that it is being bound to a session and identifies the
- * session.
- *
- * @param event
- * the event that identifies the session
- * @see #valueUnbound
- */
- public void valueBound(HttpSessionBindingEvent event);
- /**
- * Notifies the object that it is being unbound from a session and identifies
- * the session.
- *
- * @param event
- * the event that identifies the session
- * @see #valueBound
- */
+ /**
+ *
+ * Notifies the object that it is being bound to
+ * a session and identifies the session.
+ *
+ * @param event the event that identifies the
+ * session
+ *
+ * @see #valueUnbound
+ *
+ */
- public void valueUnbound(HttpSessionBindingEvent event);
+ public void valueBound(HttpSessionBindingEvent event);
+
+
+ /**
+ *
+ * Notifies the object that it is being unbound
+ * from a session and identifies the session.
+ *
+ * @param event the event that identifies
+ * the session
+ *
+ * @see #valueBound
+ *
+ */
+
+ public void valueUnbound(HttpSessionBindingEvent event);
+
+
}
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionContext.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionContext.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionContext.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,54 +1,71 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+
package javax.servlet.http;
import java.util.Enumeration;
/**
- * @author Various
- * @deprecated As of Java(tm) Servlet API 2.1 for security reasons, with no
- * replacement. This interface will be removed in a future version
- * of this API.
- * @see HttpSession
- * @see HttpSessionBindingEvent
- * @see HttpSessionBindingListener
+ *
+ * @author Various
+ * @version $Version$
+ *
+ * @deprecated As of Java(tm) Servlet API 2.1
+ * for security reasons, with no replacement.
+ * This interface will be removed in a future
+ * version of this API.
+ *
+ * @see HttpSession
+ * @see HttpSessionBindingEvent
+ * @see HttpSessionBindingListener
+ *
*/
-public interface HttpSessionContext
-{
- /**
- * @deprecated As of Java Servlet API 2.1 with no replacement. This method
- * must return null and will be removed in a future version of
- * this API.
- */
+public interface HttpSessionContext {
- public HttpSession getSession(String sessionId);
+ /**
+ *
+ * @deprecated As of Java Servlet API 2.1 with
+ * no replacement. This method must
+ * return null and will be removed in
+ * a future version of this API.
+ *
+ */
- /**
- * @deprecated As of Java Servlet API 2.1 with no replacement. This method
- * must return an empty <code>Enumeration</code> and will be
- * removed in a future version of this API.
- */
+ public HttpSession getSession(String sessionId);
+
+
+
+
+ /**
+ *
+ * @deprecated As of Java Servlet API 2.1 with
+ * no replacement. This method must return
+ * an empty <code>Enumeration</code> and will be removed
+ * in a future version of this API.
+ *
+ */
- public Enumeration getIds();
+ public Enumeration getIds();
}
+
+
+
+
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionEvent.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionEvent.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionEvent.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,43 +1,34 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet.http;
-/**
- * This is the class representing event notifications for changes to sessions
- * within a web application.
- *
- * @since v 2.3
- */
-public class HttpSessionEvent extends java.util.EventObject
-{
- /** Construct a session event from the given source. */
- public HttpSessionEvent(HttpSession source)
- {
- super(source);
- }
- /** Return the session that changed. */
- public HttpSession getSession()
- {
- return (HttpSession) super.getSource();
- }
+ /** This is the class representing event notifications for
+ * changes to sessions within a web application.
+ * @since v 2.3
+ */
+public class HttpSessionEvent extends java.util.EventObject {
+ /** Construct a session event from the given source.*/
+ public HttpSessionEvent(HttpSession source) {
+ super(source);
}
+ /** Return the session that changed.*/
+ public HttpSession getSession () {
+ return (HttpSession) super.getSource();
+ }
+}
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionListener.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionListener.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpSessionListener.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,55 +1,45 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
package javax.servlet.http;
import java.util.EventListener;
-/**
- * Implementations of this interface are notified of changes to the list of
- * active sessions in a web application. To receive notification events, the
- * implementation class must be configured in the deployment descriptor for the
- * web application.
- *
- * @see HttpSessionEvent
- * @since v 2.3
- */
+ /**
+ * Implementations of this interface are notified of changes to the
+ * list of active sessions in a web application.
+ * To receive notification events, the implementation class
+ * must be configured in the deployment descriptor for the web application.
+ * @see HttpSessionEvent
+ * @since v 2.3
+ */
-public interface HttpSessionListener extends EventListener
-{
-
- /**
- * Notification that a session was created.
- *
- * @param se
- * the notification event
- */
- public void sessionCreated(HttpSessionEvent se);
-
- /**
- * Notification that a session is about to be invalidated.
- *
- * @param se
- * the notification event
- */
- public void sessionDestroyed(HttpSessionEvent se);
-
+public interface HttpSessionListener extends EventListener {
+
+ /**
+ * Notification that a session was created.
+ * @param se the notification event
+ */
+ public void sessionCreated ( HttpSessionEvent se );
+
+ /**
+ * Notification that a session is about to be invalidated.
+ * @param se the notification event
+ */
+ public void sessionDestroyed ( HttpSessionEvent se );
+
}
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpUtils.java
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpUtils.java 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/HttpUtils.java 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,24 +1,20 @@
/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2007, Red Hat Middleware LLC, and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements. See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
package javax.servlet.http;
import javax.servlet.ServletInputStream;
@@ -28,262 +24,284 @@
import java.io.IOException;
/**
- * @deprecated As of Java(tm) Servlet API 2.3. These methods were only useful
- * with the default encoding and have been moved to the request
- * interfaces.
- */
+ * @deprecated As of Java(tm) Servlet API 2.3.
+ * These methods were only useful
+ * with the default encoding and have been moved
+ * to the request interfaces.
+ *
+*/
-public class HttpUtils
-{
- private static final String LSTRING_FILE = "javax.servlet.http.LocalStrings";
+public class HttpUtils {
- private static ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE);
+ private static final String LSTRING_FILE =
+ "javax.servlet.http.LocalStrings";
+ private static ResourceBundle lStrings =
+ ResourceBundle.getBundle(LSTRING_FILE);
+
+
+
+ /**
+ * Constructs an empty <code>HttpUtils</code> object.
+ *
+ */
- /**
- * Constructs an empty <code>HttpUtils</code> object.
- */
+ public HttpUtils() {}
+
+
+
+
- public HttpUtils()
- {
- }
+ /**
+ *
+ * Parses a query string passed from the client to the
+ * server and builds a <code>HashTable</code> object
+ * with key-value pairs.
+ * The query string should be in the form of a string
+ * packaged by the GET or POST method, that is, it
+ * should have key-value pairs in the form <i>key=value</i>,
+ * with each pair separated from the next by a & character.
+ *
+ * <p>A key can appear more than once in the query string
+ * with different values. However, the key appears only once in
+ * the hashtable, with its value being
+ * an array of strings containing the multiple values sent
+ * by the query string.
+ *
+ * <p>The keys and values in the hashtable are stored in their
+ * decoded form, so
+ * any + characters are converted to spaces, and characters
+ * sent in hexadecimal notation (like <i>%xx</i>) are
+ * converted to ASCII characters.
+ *
+ * @param s a string containing the query to be parsed
+ *
+ * @return a <code>HashTable</code> object built
+ * from the parsed key-value pairs
+ *
+ * @exception IllegalArgumentException if the query string
+ * is invalid
+ *
+ */
- /**
- * Parses a query string passed from the client to the server and builds a
- * <code>HashTable</code> object with key-value pairs. The query string
- * should be in the form of a string packaged by the GET or POST method, that
- * is, it should have key-value pairs in the form <i>key=value</i>, with
- * each pair separated from the next by a & character.
- * <p>
- * A key can appear more than once in the query string with different values.
- * However, the key appears only once in the hashtable, with its value being
- * an array of strings containing the multiple values sent by the query
- * string.
- * <p>
- * The keys and values in the hashtable are stored in their decoded form, so
- * any + characters are converted to spaces, and characters sent in
- * hexadecimal notation (like <i>%xx</i>) are converted to ASCII characters.
- *
- * @param s
- * a string containing the query to be parsed
- * @return a <code>HashTable</code> object built from the parsed key-value
- * pairs
- * @exception IllegalArgumentException
- * if the query string is invalid
- */
+ static public Hashtable parseQueryString(String s) {
- static public Hashtable parseQueryString(String s)
- {
+ String valArray[] = null;
+
+ if (s == null) {
+ throw new IllegalArgumentException();
+ }
+ Hashtable ht = new Hashtable();
+ StringBuffer sb = new StringBuffer();
+ StringTokenizer st = new StringTokenizer(s, "&");
+ while (st.hasMoreTokens()) {
+ String pair = (String)st.nextToken();
+ int pos = pair.indexOf('=');
+ if (pos == -1) {
+ // XXX
+ // should give more detail about the illegal argument
+ throw new IllegalArgumentException();
+ }
+ String key = parseName(pair.substring(0, pos), sb);
+ String val = parseName(pair.substring(pos+1, pair.length()), sb);
+ if (ht.containsKey(key)) {
+ String oldVals[] = (String []) ht.get(key);
+ valArray = new String[oldVals.length + 1];
+ for (int i = 0; i < oldVals.length; i++)
+ valArray[i] = oldVals[i];
+ valArray[oldVals.length] = val;
+ } else {
+ valArray = new String[1];
+ valArray[0] = val;
+ }
+ ht.put(key, valArray);
+ }
+ return ht;
+ }
- String valArray[] = null;
- if (s == null)
- {
- throw new IllegalArgumentException();
- }
- Hashtable<String, String[]> ht = new Hashtable<String, String[]>();
- StringBuffer sb = new StringBuffer();
- StringTokenizer st = new StringTokenizer(s, "&");
- while (st.hasMoreTokens())
- {
- String pair = (String) st.nextToken();
- int pos = pair.indexOf('=');
- if (pos == -1)
- {
- // XXX
- // should give more detail about the illegal argument
- throw new IllegalArgumentException();
- }
- String key = parseName(pair.substring(0, pos), sb);
- String val = parseName(pair.substring(pos + 1, pair.length()), sb);
- if (ht.containsKey(key))
- {
- String oldVals[] = (String[]) ht.get(key);
- valArray = new String[oldVals.length + 1];
- for (int i = 0; i < oldVals.length; i++)
- valArray[i] = oldVals[i];
- valArray[oldVals.length] = val;
- }
- else
- {
- valArray = new String[1];
- valArray[0] = val;
- }
- ht.put(key, valArray);
- }
- return ht;
- }
- /**
- * Parses data from an HTML form that the client sends to the server using
- * the HTTP POST method and the <i>application/x-www-form-urlencoded</i>
- * MIME type.
- * <p>
- * The data sent by the POST method contains key-value pairs. A key can
- * appear more than once in the POST data with different values. However, the
- * key appears only once in the hashtable, with its value being an array of
- * strings containing the multiple values sent by the POST method.
- * <p>
- * The keys and values in the hashtable are stored in their decoded form, so
- * any + characters are converted to spaces, and characters sent in
- * hexadecimal notation (like <i>%xx</i>) are converted to ASCII characters.
- *
- * @param len
- * an integer specifying the length, in characters, of the
- * <code>ServletInputStream</code> object that is also passed to
- * this method
- * @param in
- * the <code>ServletInputStream</code> object that contains the
- * data sent from the client
- * @return a <code>HashTable</code> object built from the parsed key-value
- * pairs
- * @exception IllegalArgumentException
- * if the data sent by the POST method is invalid
- */
- static public Hashtable parsePostData(int len, ServletInputStream in)
- {
- // XXX
- // should a length of 0 be an IllegalArgumentException
+ /**
+ *
+ * Parses data from an HTML form that the client sends to
+ * the server using the HTTP POST method and the
+ * <i>application/x-www-form-urlencoded</i> MIME type.
+ *
+ * <p>The data sent by the POST method contains key-value
+ * pairs. A key can appear more than once in the POST data
+ * with different values. However, the key appears only once in
+ * the hashtable, with its value being
+ * an array of strings containing the multiple values sent
+ * by the POST method.
+ *
+ * <p>The keys and values in the hashtable are stored in their
+ * decoded form, so
+ * any + characters are converted to spaces, and characters
+ * sent in hexadecimal notation (like <i>%xx</i>) are
+ * converted to ASCII characters.
+ *
+ *
+ *
+ * @param len an integer specifying the length,
+ * in characters, of the
+ * <code>ServletInputStream</code>
+ * object that is also passed to this
+ * method
+ *
+ * @param in the <code>ServletInputStream</code>
+ * object that contains the data sent
+ * from the client
+ *
+ * @return a <code>HashTable</code> object built
+ * from the parsed key-value pairs
+ *
+ *
+ * @exception IllegalArgumentException if the data
+ * sent by the POST method is invalid
+ *
+ */
+
- if (len <= 0)
- return new Hashtable(); // cheap hack to return an empty hash
+ static public Hashtable parsePostData(int len,
+ ServletInputStream in)
+ {
+ // XXX
+ // should a length of 0 be an IllegalArgumentException
+
+ if (len <=0)
+ return new Hashtable(); // cheap hack to return an empty hash
- if (in == null)
- {
- throw new IllegalArgumentException();
- }
+ if (in == null) {
+ throw new IllegalArgumentException();
+ }
+
+ //
+ // Make sure we read the entire POSTed body.
+ //
+ byte[] postedBytes = new byte [len];
+ try {
+ int offset = 0;
+
+ do {
+ int inputLen = in.read (postedBytes, offset, len - offset);
+ if (inputLen <= 0) {
+ String msg = lStrings.getString("err.io.short_read");
+ throw new IllegalArgumentException (msg);
+ }
+ offset += inputLen;
+ } while ((len - offset) > 0);
- //
- // Make sure we read the entire POSTed body.
- //
- byte[] postedBytes = new byte[len];
- try
- {
- int offset = 0;
+ } catch (IOException e) {
+ throw new IllegalArgumentException(e.getMessage());
+ }
- do
- {
- int inputLen = in.read(postedBytes, offset, len - offset);
- if (inputLen <= 0)
- {
- String msg = lStrings.getString("err.io.short_read");
- throw new IllegalArgumentException(msg);
- }
- offset += inputLen;
- }
- while ((len - offset) > 0);
+ // XXX we shouldn't assume that the only kind of POST body
+ // is FORM data encoded using ASCII or ISO Latin/1 ... or
+ // that the body should always be treated as FORM data.
+ //
- }
- catch (IOException e)
- {
- throw new IllegalArgumentException(e.getMessage());
- }
+ try {
+ String postedBody = new String(postedBytes, 0, len, "8859_1");
+ return parseQueryString(postedBody);
+ } catch (java.io.UnsupportedEncodingException e) {
+ // XXX function should accept an encoding parameter & throw this
+ // exception. Otherwise throw something expected.
+ throw new IllegalArgumentException(e.getMessage());
+ }
+ }
- // XXX we shouldn't assume that the only kind of POST body
- // is FORM data encoded using ASCII or ISO Latin/1 ... or
- // that the body should always be treated as FORM data.
- //
- try
- {
- String postedBody = new String(postedBytes, 0, len, "8859_1");
- return parseQueryString(postedBody);
- }
- catch (java.io.UnsupportedEncodingException e)
- {
- // XXX function should accept an encoding parameter & throw this
- // exception. Otherwise throw something expected.
- throw new IllegalArgumentException(e.getMessage());
- }
- }
- /*
- * Parse a name in the query string.
- */
- static private String parseName(String s, StringBuffer sb)
- {
- sb.setLength(0);
- for (int i = 0; i < s.length(); i++)
- {
- char c = s.charAt(i);
- switch (c)
- {
- case '+' :
- sb.append(' ');
- break;
- case '%' :
- try
- {
- sb.append((char) Integer.parseInt(s.substring(i + 1, i + 3), 16));
- i += 2;
- }
- catch (NumberFormatException e)
- {
- // XXX
- // need to be more specific about illegal arg
- throw new IllegalArgumentException();
- }
- catch (StringIndexOutOfBoundsException e)
- {
- String rest = s.substring(i);
- sb.append(rest);
- if (rest.length() == 2)
- i++;
- }
+ /*
+ * Parse a name in the query string.
+ */
- break;
- default :
- sb.append(c);
- break;
- }
- }
- return sb.toString();
- }
+ static private String parseName(String s, StringBuffer sb) {
+ sb.setLength(0);
+ for (int i = 0; i < s.length(); i++) {
+ char c = s.charAt(i);
+ switch (c) {
+ case '+':
+ sb.append(' ');
+ break;
+ case '%':
+ try {
+ sb.append((char) Integer.parseInt(s.substring(i+1, i+3),
+ 16));
+ i += 2;
+ } catch (NumberFormatException e) {
+ // XXX
+ // need to be more specific about illegal arg
+ throw new IllegalArgumentException();
+ } catch (StringIndexOutOfBoundsException e) {
+ String rest = s.substring(i);
+ sb.append(rest);
+ if (rest.length()==2)
+ i++;
+ }
+
+ break;
+ default:
+ sb.append(c);
+ break;
+ }
+ }
+ return sb.toString();
+ }
- /**
- * Reconstructs the URL the client used to make the request, using
- * information in the <code>HttpServletRequest</code> object. The returned
- * URL contains a protocol, server name, port number, and server path, but it
- * does not include query string parameters.
- * <p>
- * Because this method returns a <code>StringBuffer</code>, not a string,
- * you can modify the URL easily, for example, to append query parameters.
- * <p>
- * This method is useful for creating redirect messages and for reporting
- * errors.
- *
- * @param req
- * a <code>HttpServletRequest</code> object containing the
- * client's request
- * @return a <code>StringBuffer</code> object containing the reconstructed
- * URL
- */
- public static StringBuffer getRequestURL(HttpServletRequest req)
- {
- StringBuffer url = new StringBuffer();
- String scheme = req.getScheme();
- int port = req.getServerPort();
- String urlPath = req.getRequestURI();
- // String servletPath = req.getServletPath ();
- // String pathInfo = req.getPathInfo ();
- url.append(scheme); // http, https
- url.append("://");
- url.append(req.getServerName());
- if ((scheme.equals("http") && port != 80) || (scheme.equals("https") && port != 443))
- {
- url.append(':');
- url.append(req.getServerPort());
- }
- // if (servletPath != null)
- // url.append (servletPath);
- // if (pathInfo != null)
- // url.append (pathInfo);
- url.append(urlPath);
- return url;
- }
+ /**
+ *
+ * Reconstructs the URL the client used to make the request,
+ * using information in the <code>HttpServletRequest</code> object.
+ * The returned URL contains a protocol, server name, port
+ * number, and server path, but it does not include query
+ * string parameters.
+ *
+ * <p>Because this method returns a <code>StringBuffer</code>,
+ * not a string, you can modify the URL easily, for example,
+ * to append query parameters.
+ *
+ * <p>This method is useful for creating redirect messages
+ * and for reporting errors.
+ *
+ * @param req a <code>HttpServletRequest</code> object
+ * containing the client's request
+ *
+ * @return a <code>StringBuffer</code> object containing
+ * the reconstructed URL
+ *
+ */
+
+ public static StringBuffer getRequestURL (HttpServletRequest req) {
+ StringBuffer url = new StringBuffer ();
+ String scheme = req.getScheme ();
+ int port = req.getServerPort ();
+ String urlPath = req.getRequestURI();
+
+ //String servletPath = req.getServletPath ();
+ //String pathInfo = req.getPathInfo ();
+
+ url.append (scheme); // http, https
+ url.append ("://");
+ url.append (req.getServerName ());
+ if ((scheme.equals ("http") && port != 80)
+ || (scheme.equals ("https") && port != 443)) {
+ url.append (':');
+ url.append (req.getServerPort ());
+ }
+ //if (servletPath != null)
+ // url.append (servletPath);
+ //if (pathInfo != null)
+ // url.append (pathInfo);
+ url.append(urlPath);
+ return url;
+ }
}
+
+
+
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings.properties
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings.properties 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings.properties 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
# Default localized string information
# Localized for Locale en_US
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings_es.properties
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings_es.properties 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings_es.properties 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,3 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# $Id: LocalStrings_es.properties 467222 2006-10-24 03:17:11Z markt $
+#
# Default localized string information
# Localized para Locale es_ES
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings_fr.properties
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings_fr.properties 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings_fr.properties 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
# Default localized string information
# Localized for Locale fr_FR
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings_ja.properties
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings_ja.properties 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/LocalStrings_ja.properties 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,3 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
# Default localized string information
# Localized for Locale ja_JP
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/package.html
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/package.html 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/http/package.html 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,11 +1,23 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
+<!--
+
+ Copyright 2001 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the proprietary information of Sun Microsystems, Inc.
+ Use is subject to license terms.
+
+-->
+
</HEAD>
<BODY BGCOLOR="white">
+
The javax.servlet.http package contains a number of classes and interfaces
that describe and define the contracts between a servlet class
running under the HTTP protocol and the runtime environment provided
for an instance of such a class by a conforming servlet container.
+
+
</BODY>
</HTML>
Modified: projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/package.html
===================================================================
--- projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/package.html 2007-12-06 22:01:02 UTC (rev 68006)
+++ projects/javaee/trunk/jboss-servlet-api/src/main/javax/servlet/package.html 2007-12-06 22:01:53 UTC (rev 68007)
@@ -1,11 +1,23 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
+<!--
+
+ Copyright 2001 Sun Microsystems, Inc. All Rights Reserved.
+
+ This software is the proprietary information of Sun Microsystems, Inc.
+ Use is subject to license terms.
+
+-->
+
</HEAD>
<BODY BGCOLOR="white">
- The javax.servlet package contains a number of classes and interfaces that
- describe and define the contracts between a servlet class and the
- runtime environment provided for an instance of such a class by a
- conforming servlet container.
+
+The javax.servlet package contains a number of classes and interfaces that
+describe and define the contracts between a servlet class and the
+runtime environment provided for an instance of such a class by a
+conforming servlet container.
+
+
</BODY>
</HTML>
More information about the jboss-cvs-commits
mailing list