/*
 * 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 jakarta.servlet;

Ensures that servlets handle only one request at a time. This interface has no methods.

If a servlet implements this interface, you are guaranteed that no two threads will execute concurrently in the servlet's service 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.

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.

Deprecated:As of Java Servlet API 2.4, with no direct replacement.
/** * 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. * * @deprecated As of Java Servlet API 2.4, with no direct replacement. */
@Deprecated public interface SingleThreadModel { // No methods }