/**
* 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 org.apache.openejb.server.httpd;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
/**
* An interface to take care of HTTP Requests. It parses headers, content, form and url
* parameters.
*/
public interface HttpRequest extends java.io.Serializable, HttpServletRequest {
/**
* Request methods
*/
public static enum Method {
OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT, PATCH, UNSUPPORTED
}
//
// Header variables
//
/**
* the Accept header
*/
public static final String HEADER_ACCEPT = "Accept";
/**
* the Accept-Encoding header
*/
public static final String HEADER_ACCEPT_ENCODING = "Accept-Encoding";
/**
* the Accept-Language header
*/
public static final String HEADER_ACCEPT_LANGUAGE = "Accept-Language";
/**
* the Content-Type header
*/
public static final String HEADER_CONTENT_TYPE = "Content-Type";
/**
* the Content-Length header
*/
public static final String HEADER_CONTENT_LENGTH = "Content-Length";
/**
* the Connection header
*/
public static final String HEADER_CONNECTION = "Connection";
/**
* the Cache-Control header
*/
public static final String HEADER_CACHE_CONTROL = "Cache-Control";
/**
* the Host header
*/
public static final String HEADER_HOST = "Host";
/**
* the User-Agent header
*/
public static final String HEADER_USER_AGENT = "User-Agent";
/**
* the Set-Cookie header
*/
public static final String HEADER_SET_COOKIE = "Set-Cookie";
/**
* the Cookie header
*/
public static final String HEADER_COOKIE = "Cookie";
//
// Common attrobute values
//
/**
* If the https server implementation is based on Servlets, the real HttpServletRequest
* will be registered in the request attributes using this name.
*/
public static final String SERVLET_REQUEST = HttpRequest.class.getName() + "@ServletRequest";
/**
* If the https server implementation is based on Servlets, the real HttpServletResponse
* will be registered in the request attributes using this name.
*/
public static final String SERVLET_RESPONSE = HttpRequest.class.getName() + "@ServletResponse";
/**
* If the https server implementation is based on Servlets, the real ServletContext
* will be registered in the request attributes using this name. Note: a ServletContext
* may not be registered even if HttpServletRequest and HttpServletResponse objects are
* registered.
*/
public static final String SERVLET_CONTEXT = HttpRequest.class.getName() + "@ServletContext";
/**
* Gets a form or URL query parameter based on the name passed in.
*
* @param name
*/
String getParameter(String name);
/**
* Gets all the form and URL query parameters
*
* @return All the form and URL query parameters
*/
Map getParameters();
/**
* Gets the URI for the current URL page.
*
* @return The URI
*/
public java.net.URI getURI();
int getContentLength();
String getContentType();
public Object getAttribute(String name);
public void setAttribute(String name, Object value);
String getRemoteAddr();
}