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

jakarta.servlet.GenericFilter Maven / Gradle / Ivy

There is a newer version: 2024.11.18751.20241128T090041Z-241100
Show newest version
/*
 * Copyright (c) 1997, 2020 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.Enumeration;
import java.util.ResourceBundle;

/**
 *
 * 

* Defines a generic, protocol-independent filter. To write an HTTP filter for use on the Web, extend * {@link jakarta.servlet.http.HttpFilter} instead. *

* *

* GenericFilter implements the Filter and FilterConfig interfaces. * GenericFilter may be directly extended by a filter, although it's more common to extend a * protocol-specific subclass such as HttpFilter. * *

* GenericFilter makes writing filters easier. It provides simple versions of the lifecycle methods * init and destroy and of the methods in the FilterConfig interface. * *

* To write a generic filter, you need only override the abstract doFilter method. * * @author Various * * @since Servlet 4.0 */ public abstract class GenericFilter implements Filter, FilterConfig, java.io.Serializable { private static final long serialVersionUID = 4060116231031076581L; private static final String LSTRING_FILE = "jakarta.servlet.LocalStrings"; private static final ResourceBundle lStrings = ResourceBundle.getBundle(LSTRING_FILE); private transient FilterConfig config; /** * *

* Does nothing. All of the filter initialization is done by one of the init methods. *

* * @since Servlet 4.0 */ public GenericFilter() { } /** *

* Returns a String containing the value of the named initialization parameter, or null if the * parameter does not exist. See {@link FilterConfig#getInitParameter}. *

* *

* This method is supplied for convenience. It gets the value of the named parameter from the servlet's * ServletConfig object. * * @param name a String specifying the name of the initialization parameter * * @return String a String containing the value of the initialization parameter * * @since Servlet 4.0 * */ @Override public String getInitParameter(String name) { FilterConfig fc = getFilterConfig(); if (fc == null) { throw new IllegalStateException(lStrings.getString("err.filter_config_not_initialized")); } return fc.getInitParameter(name); } /** *

* Returns the names of the filter's initialization parameters as an Enumeration of String * objects, or an empty Enumeration if the filter has no initialization parameters. See * {@link FilterConfig#getInitParameterNames}. *

* *

* This method is supplied for convenience. It gets the parameter names from the filter's FilterConfig * object. * * @return Enumeration an enumeration of String objects containing the names of the filter's initialization * parameters * * @since Servlet 4.0 */ @Override public Enumeration getInitParameterNames() { FilterConfig fc = getFilterConfig(); if (fc == null) { throw new IllegalStateException(lStrings.getString("err.filter_config_not_initialized")); } return fc.getInitParameterNames(); } /** *

* Returns this servlet's {@link ServletConfig} object. *

* * @return FilterConfig the FilterConfig object that initialized this filter * * @since Servlet 4.0 */ public FilterConfig getFilterConfig() { return config; } /** *

* Returns a reference to the {@link ServletContext} in which this filter is running. See * {@link FilterConfig#getServletContext}. *

* *

* This method is supplied for convenience. It gets the context from the filter's FilterConfig object. * * @return ServletContext the ServletContext object passed to this filter by the init method * * @since Servlet 4.0 */ @Override public ServletContext getServletContext() { FilterConfig sc = getFilterConfig(); if (sc == null) { throw new IllegalStateException(lStrings.getString("err.filter_config_not_initialized")); } return sc.getServletContext(); } /** *

* Called by the servlet container to indicate to a filter that it is being placed into service. See * {@link Filter#init}. *

* *

* This implementation stores the {@link FilterConfig} object it receives from the servlet container for later use. When * overriding this form of the method, call super.init(config). * * @param config the FilterConfig object that contains configuration information for this filter * * @exception ServletException if an exception occurs that interrupts the servlet's normal operation * * @see UnavailableException * * @since Servlet 4.0 */ @Override public void init(FilterConfig config) throws ServletException { this.config = config; this.init(); } /** *

* A convenience method which can be overridden so that there's no need to call super.init(config). *

* *

* Instead of overriding {@link #init(FilterConfig)}, simply override this method and it will be called by * GenericFilter.init(FilterConfig config). The FilterConfig object can still be retrieved via * {@link #getFilterConfig}. * * @exception ServletException if an exception occurs that interrupts the servlet's normal operation * * @since Servlet 4.0 */ public void init() throws ServletException { } /** *

* Returns the name of this filter instance. See {@link FilterConfig#getFilterName}. *

* * @return the name of this filter instance * * @since Servlet 4.0 */ @Override public String getFilterName() { FilterConfig sc = getFilterConfig(); if (sc == null) { throw new IllegalStateException(lStrings.getString("err.servlet_config_not_initialized")); } return sc.getFilterName(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy