All Downloads are FREE. Search and download functionalities are using the official Maven repository.

jakarta.servlet.Registration Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2017, 2023 Oracle and/or its affiliates and others.
 * All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v. 2.0, which is available at
 * http://www.eclipse.org/legal/epl-2.0.
 *
 * This Source Code may also be made available under the following Secondary
 * Licenses when the conditions for such availability set forth in the
 * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
 * version 2 with the GNU Classpath Exception, which is available at
 * https://www.gnu.org/software/classpath/license.html.
 *
 * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
 */

package jakarta.servlet;

import java.util.Map;
import java.util.Set;

/**
 * Interface through which a {@link Servlet} or {@link Filter} may be further configured.
 *
 * 

* A Registration object whose {@link #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 {@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. * * @return the name of the Servlet or Filter that is represented by this Registration */ String getName(); /** * 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 */ String getClassName(); /** * 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 null */ 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. * * @param name the name of the initialization parameter whose value is requested * * @return the value of the initialization parameter with the given name, or null if no initialization * parameter with the given name exists */ 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 {@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 null name or value, no updates will be * performed, and an IllegalArgumentException will be thrown. * *

* 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. *

* * @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 null name or * value */ Set setInitParameters(Map 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. * * @return Map containing the currently available initialization parameters that will be used to initialize the Servlet * or Filter represented by this Registration object */ Map getInitParameters(); /** * Interface through which a {@link Servlet} or {@link Filter} registered via one of the addServlet or * addFilter 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. * * @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 */ void setAsyncSupported(boolean isAsyncSupported); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy