]> WPIA git - gigi.git/blob - lib/servlet-api/javax/servlet/SingleThreadModel.java
adding servlet api (from tomcat)
[gigi.git] / lib / servlet-api / javax / servlet / SingleThreadModel.java
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 package javax.servlet;
18
19 /**
20  * Ensures that servlets handle only one request at a time. This interface has
21  * no methods.
22  * <p>
23  * If a servlet implements this interface, you are <i>guaranteed</i> that no two
24  * threads will execute concurrently in the servlet's <code>service</code>
25  * method. The servlet container can make this guarantee by synchronizing access
26  * to a single instance of the servlet, or by maintaining a pool of servlet
27  * instances and dispatching each new request to a free servlet.
28  * <p>
29  * Note that SingleThreadModel does not solve all thread safety issues. For
30  * example, session attributes and static variables can still be accessed by
31  * multiple requests on multiple threads at the same time, even when
32  * SingleThreadModel servlets are used. It is recommended that a developer take
33  * other means to resolve those issues instead of implementing this interface,
34  * such as avoiding the usage of an instance variable or synchronizing the block
35  * of the code accessing those resources. This interface is deprecated in
36  * Servlet API version 2.4.
37  *
38  * @deprecated As of Java Servlet API 2.4, with no direct replacement.
39  */
40 @SuppressWarnings("dep-ann")
41 // Spec API does not use @Deprecated
42 public interface SingleThreadModel {
43     // No methods
44 }