KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > web > HttpRequestHandler


1 /*
2  * Copyright 2002-2006 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.springframework.web;
18
19 import java.io.IOException JavaDoc;
20
21 import javax.servlet.ServletException JavaDoc;
22 import javax.servlet.http.HttpServletRequest JavaDoc;
23 import javax.servlet.http.HttpServletResponse JavaDoc;
24
25 /**
26  * Plain handler interface for components that process HTTP requests,
27  * analogous to a Servlet. Only throws ServletException and IOException,
28  * to allow for usage within any HttpServlet. Essentially the direct
29  * equivalent of an HttpServlet, reduced to a handle method.
30  *
31  * <p>The easiest way to expose an HttpRequestHandler bean in Spring style
32  * is to define it in Spring's root web application context and define
33  * an HttpRequestHandlerServlet in <code>web.xml</code>, pointing at the
34  * target HttpRequestHandler bean through its servlet-name which needs
35  * to match the target bean name.
36  *
37  * <p>Supported as a handler type within Spring's DispatcherServlet,
38  * being able to leverage the dispatcher's advanced mapping and interception
39  * facilities. This is the recommended way of exposing an HttpRequestHandler,
40  * while keeping the handler implementations free of direct dependencies
41  * on a DispatcherServlet environment.
42  *
43  * <p>Typically implemented to generate binary responses directly,
44  * with no separate view resource involved. This differentiates it from
45  * a Controller within Spring's Web MVC framework. The lack of a ModelAndView
46  * return value gives a clearer signature to callers other than the
47  * DispatcherServlet, indicating there will never be a view to render.
48  *
49  * <p>As of Spring 2.0, Spring's HTTP-based remote exporters, such as
50  * HttpInvokerServiceExporter and HessianServiceExporter, implement this
51  * interface rather than the more extensive Controller interface,
52  * for minimal dependencies on Spring-specific web infrastructure.
53  *
54  * <p>Note that RequestHandlers can optionally implement the LastModified
55  * interface, just like Controllers can, provided that they run within
56  * Spring's DispatcherServlet.
57  *
58  * @author Juergen Hoeller
59  * @since 2.0
60  * @see org.springframework.web.context.support.HttpRequestHandlerServlet
61  * @see org.springframework.web.servlet.DispatcherServlet
62  * @see org.springframework.web.servlet.ModelAndView
63  * @see org.springframework.web.servlet.mvc.Controller
64  * @see org.springframework.web.servlet.mvc.LastModified
65  * @see org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
66  * @see org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter
67  * @see org.springframework.remoting.caucho.HessianServiceExporter
68  * @see org.springframework.remoting.caucho.BurlapServiceExporter
69  */

70 public interface HttpRequestHandler {
71
72     /**
73      * Process the given request, generating a response.
74      * @param request current HTTP request
75      * @param response current HTTP response
76      * @throws ServletException in case of general errors
77      * @throws IOException in case of I/O errors
78      */

79     void handleRequest(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response)
80             throws ServletException JavaDoc, IOException JavaDoc;
81
82 }
83
Popular Tags