/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2017-2017 Oracle and/or its affiliates. All rights reserved.
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can
* obtain a copy of the License at
* https://oss.oracle.com/licenses/CDDL+GPL-1.1
* or LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at LICENSE.txt.
*
* GPL Classpath Exception:
* Oracle designates this particular file as subject to the "Classpath"
* exception as provided by Oracle in the GPL Version 2 section of the License
* file that accompanied this code.
*
* Modifications:
* If applicable, add the following below the License Header, with the fields
* enclosed by brackets [] replaced by your own identifying information:
* "Portions Copyright [year] [name of copyright owner]"
*
* Contributor(s):
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
package javax.servlet;
import java.util.Map;
import java.util.Set;
Interface through which a Servlet
or Filter
may be further configured. A Registration object whose getClassName
method returns null is considered preliminary. Servlets and Filters whose implementation
class is container implementation specific may be declared without
any servlet-class or filter-class elements, respectively,
and will be represented as preliminary Registration objects.
Preliminary registrations must be completed by calling one of the
addServlet or addFilter methods on ServletContext
, and passing in the Servlet or Filter name (obtained via getName
) along with the supporting Servlet or Filter implementation class name, Class object, or instance, respectively. In most cases, preliminary registrations will be completed by an appropriate, container-provided ServletContainerInitializer
.
Since: Servlet 3.0
/**
* Interface through which a {@link Servlet} or {@link Filter} may be
* further configured.
*
* <p>A Registration object whose {@link #getClassName} method returns null
* is considered <i>preliminary</i>. Servlets and Filters whose implementation
* class is container implementation specific may be declared without
* any <tt>servlet-class</tt> or <tt>filter-class</tt> elements, respectively,
* and will be represented as preliminary Registration objects.
* Preliminary registrations must be completed by calling one of the
* <tt>addServlet</tt> or <tt>addFilter</tt> methods on
* {@link ServletContext}, and passing in the Servlet or Filter name
* (obtained via {@link #getName}) along with the supporting Servlet or Filter
* implementation class name, Class object, or instance, respectively.
* In most cases, preliminary registrations will be completed by an
* appropriate, container-provided {@link ServletContainerInitializer}.
*
* @since Servlet 3.0
*/
public interface Registration {
Gets the name of the Servlet or Filter that is represented by this
Registration.
Returns: the name of the Servlet or Filter that is represented by this
Registration
/**
* Gets the name of the Servlet or Filter that is represented by this
* Registration.
*
* @return the name of the Servlet or Filter that is represented by this
* Registration
*/
public String getName();
Gets the fully qualified class name of the Servlet or Filter that
is represented by this Registration.
Returns: the fully qualified class name of the Servlet or Filter
that is represented by this Registration, or null if this
Registration is preliminary
/**
* Gets the fully qualified class name of the Servlet or Filter that
* is represented by this Registration.
*
* @return the fully qualified class name of the Servlet or Filter
* that is represented by this Registration, or null if this
* Registration is preliminary
*/
public String getClassName();
Sets the initialization parameter with the given name and value
on the Servlet or Filter that is represented by this Registration.
Params: - name – the initialization parameter name
- value – the initialization parameter value
Throws: - IllegalStateException – if the ServletContext from which this
Registration was obtained has already been initialized
- IllegalArgumentException – if the given name or value is
null
Returns: true if the update was successful, i.e., an initialization
parameter with the given name did not already exist for the Servlet
or Filter represented by this Registration, and false otherwise
/**
* Sets the initialization parameter with the given name and value
* on the Servlet or Filter that is represented by this Registration.
*
* @param name the initialization parameter name
* @param value the initialization parameter value
*
* @return true if the update was successful, i.e., an initialization
* parameter with the given name did not already exist for the Servlet
* or Filter represented by this Registration, and false otherwise
*
* @throws IllegalStateException if the ServletContext from which this
* Registration was obtained has already been initialized
* @throws IllegalArgumentException if the given name or value is
* <tt>null</tt>
*/
public boolean setInitParameter(String name, String value);
Gets the value of the initialization parameter with the given name
that will be used to initialize the Servlet or Filter represented
by this Registration object.
Params: - name – the name of the initialization parameter whose value is
requested
Returns: the value of the initialization parameter with the given
name, or null if no initialization parameter with the given
name exists
/**
* Gets the value of the initialization parameter with the given name
* that will be used to initialize the Servlet or Filter represented
* by this Registration object.
*
* @param name the name of the initialization parameter whose value is
* requested
*
* @return the value of the initialization parameter with the given
* name, or <tt>null</tt> if no initialization parameter with the given
* name exists
*/
public String getInitParameter(String name);
Sets the given initialization parameters on the Servlet or Filter
that is represented by this Registration.
The given map of initialization parameters is processed
by-value, i.e., for each initialization parameter contained in the map, this method calls setInitParameter(String, String)
. If that method would return false for any of the initialization parameters in the given map, no updates will be performed, and false will be returned. Likewise, if the map contains an initialization parameter with a null name or value, no
updates will be performed, and an IllegalArgumentException will be
thrown.
The returned set is not backed by the Registration
object, so changes in the returned set are not reflected in the Registration
object, and vice-versa.
Params: - initParameters – the initialization parameters
Throws: - IllegalStateException – if the ServletContext from which this
Registration was obtained has already been initialized
- IllegalArgumentException – if the given map contains an
initialization parameter with a null name or value
Returns: the (possibly empty) Set of initialization parameter names
that are in conflict
/**
* Sets the given initialization parameters on the Servlet or Filter
* that is represented by this Registration.
*
* <p>The given map of initialization parameters is processed
* <i>by-value</i>, i.e., for each initialization parameter contained
* in the map, this method calls {@link #setInitParameter(String,String)}.
* If that method would return false for any of the
* initialization parameters in the given map, no updates will be
* performed, and false will be returned. Likewise, if the map contains
* an initialization parameter with a <tt>null</tt> name or value, no
* updates will be performed, and an IllegalArgumentException will be
* thrown.
*
* <p>The returned set is not backed by the {@code Registration} object,
* so changes in the returned set are not reflected in the
* {@code Registration} object, and vice-versa.</p>
*
* @param initParameters the initialization parameters
*
* @return the (possibly empty) Set of initialization parameter names
* that are in conflict
*
* @throws IllegalStateException if the ServletContext from which this
* Registration was obtained has already been initialized
* @throws IllegalArgumentException if the given map contains an
* initialization parameter with a <tt>null</tt> name or value
*/
public Set<String> setInitParameters(Map<String, String> initParameters);
Gets an immutable (and possibly empty) Map containing the
currently available initialization parameters that will be used to
initialize the Servlet or Filter represented by this Registration
object.
Returns: Map containing the currently available initialization
parameters that will be used to initialize the Servlet or Filter
represented by this Registration object
/**
* Gets an immutable (and possibly empty) Map containing the
* currently available initialization parameters that will be used to
* initialize the Servlet or Filter represented by this Registration
* object.
*
* @return Map containing the currently available initialization
* parameters that will be used to initialize the Servlet or Filter
* represented by this Registration object
*/
public Map<String, String> getInitParameters();
Interface through which a Servlet
or Filter
registered via one of the addServlet or addFilter methods, respectively, on ServletContext
may be further configured. /**
* Interface through which a {@link Servlet} or {@link Filter} registered
* via one of the <tt>addServlet</tt> or <tt>addFilter</tt> methods,
* respectively, on {@link ServletContext} may be further configured.
*/
interface Dynamic extends Registration {
Configures the Servlet or Filter represented by this dynamic
Registration as supporting asynchronous operations or not.
By default, servlet and filters do not support asynchronous
operations.
A call to this method overrides any previous setting.
Params: - isAsyncSupported – true if the Servlet or Filter represented
by this dynamic Registration supports asynchronous operations,
false otherwise
Throws: - IllegalStateException – if the ServletContext from which
this dynamic Registration was obtained has already been
initialized
/**
* Configures the Servlet or Filter represented by this dynamic
* Registration as supporting asynchronous operations or not.
*
* <p>By default, servlet and filters do not support asynchronous
* operations.
*
* <p>A call to this method overrides any previous setting.
*
* @param isAsyncSupported true if the Servlet or Filter represented
* by this dynamic Registration supports asynchronous operations,
* false otherwise
*
* @throws IllegalStateException if the ServletContext from which
* this dynamic Registration was obtained has already been
* initialized
*/
public void setAsyncSupported(boolean isAsyncSupported);
}
}