1 //========================================================================
2 //$Id: Handler.java,v 1.1 2005/10/05 14:09:21 janb Exp $
3 //Copyright 2004-2005 Mort Bay Consulting Pty. Ltd.
4 //------------------------------------------------------------------------
5 //Licensed under the Apache License, Version 2.0 (the "License");
6 //you may not use this file except in compliance with the License.
7 //You may obtain a copy of the License at
8 //http://www.apache.org/licenses/LICENSE-2.0
9 //Unless required by applicable law or agreed to in writing, software
10 //distributed under the License is distributed on an "AS IS" BASIS,
11 //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 //See the License for the specific language governing permissions and
13 //limitations under the License.
14 //========================================================================
15
16 package org.mortbay.jetty;
17
18 import java.io.IOException;
19
20 import javax.servlet.ServletException;
21 import javax.servlet.http.HttpServletRequest;
22 import javax.servlet.http.HttpServletResponse;
23
24 import org.mortbay.component.LifeCycle;
25
26
27 public interface Handler extends LifeCycle
28 {
29 /** Dispatch types */
30 public static final int DEFAULT=0;
31 public static final int REQUEST=1;
32 public static final int FORWARD=2;
33 public static final int INCLUDE=4;
34 public static final int ERROR=8;
35 public static final int ALL=15;
36
37
38 /* ------------------------------------------------------------ */
39 /** Handle a request.
40 * @param target The target of the request - either a URI or a name.
41 * @param request The request either as the {@link Request}
42 * object or a wrapper of that request. The {@link HttpConnection#getCurrentConnection()}
43 * method can be used access the Request object if required.
44 * @param response The response as the {@link Response}
45 * object or a wrapper of that request. The {@link HttpConnection#getCurrentConnection()}
46 * method can be used access the Response object if required.
47 * @param dispatch The dispatch mode: {@link #REQUEST}, {@link #FORWARD}, {@link #INCLUDE}, {@link #ERROR}
48 * @throws IOException
49 * @throws ServletException
50 */
51 public void handle(String target, HttpServletRequest request, HttpServletResponse response, int dispatch)
52 throws IOException, ServletException;
53
54 public void setServer(Server server);
55 public Server getServer();
56
57 public void destroy();
58
59 }
60