001: /*
002: * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/HttpRequest.java,v 1.5 2002/03/14 20:57:20 remm Exp $
003: * $Revision: 1.5 $
004: * $Date: 2002/03/14 20:57:20 $
005: *
006: * ====================================================================
007: *
008: * The Apache Software License, Version 1.1
009: *
010: * Copyright (c) 1999 The Apache Software Foundation. All rights
011: * reserved.
012: *
013: * Redistribution and use in source and binary forms, with or without
014: * modification, are permitted provided that the following conditions
015: * are met:
016: *
017: * 1. Redistributions of source code must retain the above copyright
018: * notice, this list of conditions and the following disclaimer.
019: *
020: * 2. Redistributions in binary form must reproduce the above copyright
021: * notice, this list of conditions and the following disclaimer in
022: * the documentation and/or other materials provided with the
023: * distribution.
024: *
025: * 3. The end-user documentation included with the redistribution, if
026: * any, must include the following acknowlegement:
027: * "This product includes software developed by the
028: * Apache Software Foundation (http://www.apache.org/)."
029: * Alternately, this acknowlegement may appear in the software itself,
030: * if and wherever such third-party acknowlegements normally appear.
031: *
032: * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
033: * Foundation" must not be used to endorse or promote products derived
034: * from this software without prior written permission. For written
035: * permission, please contact apache@apache.org.
036: *
037: * 5. Products derived from this software may not be called "Apache"
038: * nor may "Apache" appear in their names without prior written
039: * permission of the Apache Group.
040: *
041: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
042: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
043: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
044: * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
045: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
046: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
047: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
048: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
049: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
050: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
051: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
052: * SUCH DAMAGE.
053: * ====================================================================
054: *
055: * This software consists of voluntary contributions made by many
056: * individuals on behalf of the Apache Software Foundation. For more
057: * information on the Apache Software Foundation, please see
058: * <http://www.apache.org/>.
059: *
060: * [Additional notices, if required by prior licensing conditions]
061: *
062: */
063:
064: package org.apache.catalina;
065:
066: import java.security.Principal;
067: import java.util.Locale;
068: import javax.servlet.http.Cookie;
069:
070: /**
071: * An <b>HttpRequest</b> is the Catalina internal facade for an
072: * <code>HttpServletRequest</code> that is to be processed, in order to
073: * produce the corresponding <code>HttpResponse</code>.
074: *
075: * @author Craig R. McClanahan
076: * @version $Revision: 1.5 $ $Date: 2002/03/14 20:57:20 $
077: */
078:
079: public interface HttpRequest extends Request {
080:
081: // --------------------------------------------------------- Public Methods
082:
083: /**
084: * Add a Cookie to the set of Cookies associated with this Request.
085: *
086: * @param cookie The new cookie
087: */
088: public void addCookie(Cookie cookie);
089:
090: /**
091: * Add a Header to the set of Headers associated with this Request.
092: *
093: * @param name The new header name
094: * @param value The new header value
095: */
096: public void addHeader(String name, String value);
097:
098: /**
099: * Add a Locale to the set of preferred Locales for this Request. The
100: * first added Locale will be the first one returned by getLocales().
101: *
102: * @param locale The new preferred Locale
103: */
104: public void addLocale(Locale locale);
105:
106: /**
107: * Add a parameter name and corresponding set of values to this Request.
108: * (This is used when restoring the original request on a form based
109: * login).
110: *
111: * @param name Name of this request parameter
112: * @param values Corresponding values for this request parameter
113: */
114: public void addParameter(String name, String values[]);
115:
116: /**
117: * Clear the collection of Cookies associated with this Request.
118: */
119: public void clearCookies();
120:
121: /**
122: * Clear the collection of Headers associated with this Request.
123: */
124: public void clearHeaders();
125:
126: /**
127: * Clear the collection of Locales associated with this Request.
128: */
129: public void clearLocales();
130:
131: /**
132: * Clear the collection of parameters associated with this Request.
133: */
134: public void clearParameters();
135:
136: /**
137: * Set the authentication type used for this request, if any; otherwise
138: * set the type to <code>null</code>. Typical values are "BASIC",
139: * "DIGEST", or "SSL".
140: *
141: * @param type The authentication type used
142: */
143: public void setAuthType(String type);
144:
145: /**
146: * Set the context path for this Request. This will normally be called
147: * when the associated Context is mapping the Request to a particular
148: * Wrapper.
149: *
150: * @param path The context path
151: */
152: public void setContextPath(String path);
153:
154: /**
155: * Set the HTTP request method used for this Request.
156: *
157: * @param method The request method
158: */
159: public void setMethod(String method);
160:
161: /**
162: * Set the query string for this Request. This will normally be called
163: * by the HTTP Connector, when it parses the request headers.
164: *
165: * @param query The query string
166: */
167: public void setQueryString(String query);
168:
169: /**
170: * Set the path information for this Request. This will normally be called
171: * when the associated Context is mapping the Request to a particular
172: * Wrapper.
173: *
174: * @param path The path information
175: */
176: public void setPathInfo(String path);
177:
178: /**
179: * Set a flag indicating whether or not the requested session ID for this
180: * request came in through a cookie. This is normally called by the
181: * HTTP Connector, when it parses the request headers.
182: *
183: * @param flag The new flag
184: */
185: public void setRequestedSessionCookie(boolean flag);
186:
187: /**
188: * Set the requested session ID for this request. This is normally called
189: * by the HTTP Connector, when it parses the request headers.
190: *
191: * @param id The new session id
192: */
193: public void setRequestedSessionId(String id);
194:
195: /**
196: * Set a flag indicating whether or not the requested session ID for this
197: * request came in through a URL. This is normally called by the
198: * HTTP Connector, when it parses the request headers.
199: *
200: * @param flag The new flag
201: */
202: public void setRequestedSessionURL(boolean flag);
203:
204: /**
205: * Set the unparsed request URI for this Request. This will normally be
206: * called by the HTTP Connector, when it parses the request headers.
207: *
208: * @param uri The request URI
209: */
210: public void setRequestURI(String uri);
211:
212: /**
213: * Set the decoded request URI.
214: *
215: * @param uri The decoded request URI
216: */
217: public void setDecodedRequestURI(String uri);
218:
219: /**
220: * Get the decoded request URI.
221: *
222: * @return the URL decoded request URI
223: */
224: public String getDecodedRequestURI();
225:
226: /**
227: * Set the servlet path for this Request. This will normally be called
228: * when the associated Context is mapping the Request to a particular
229: * Wrapper.
230: *
231: * @param path The servlet path
232: */
233: public void setServletPath(String path);
234:
235: /**
236: * Set the Principal who has been authenticated for this Request. This
237: * value is also used to calculate the value to be returned by the
238: * <code>getRemoteUser()</code> method.
239: *
240: * @param principal The user Principal
241: */
242: public void setUserPrincipal(Principal principal);
243:
244: }
|