All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.servlet.ServletRequest Maven / Gradle / Ivy

There is a newer version: 4.0.66
Show newest version
/*
 * Copyright (c) 1998-2018 Caucho Technology -- all rights reserved
 *
 * This file is part of Resin(R) Open Source
 *
 * Each copy or derived work must preserve the copyright notice and this
 * notice unmodified.
 *
 * Resin Open Source is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * Resin Open Source is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
 * of NON-INFRINGEMENT.  See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Resin Open Source; if not, write to the
 *
 *   Free Software Foundation, Inc.
 *   59 Temple Place, Suite 330
 *   Boston, MA 02111-1307  USA
 *
 * @author Scott Ferguson
 */

package javax.servlet;

import java.io.BufferedReader;
import java.io.IOException;
import java.util.Enumeration;
import java.util.Locale;
import java.util.Map;

/**
 * ServletRequest encapsulates client request data.  See HttpServletRequest
 * for HTTP-specific information.
 *
 * 

Requests have user-defined attributes. Servlets can communicate * to included or forwarded pages using the request attributes. For example, * a servlet may calculate results and place them in the request attributes. * It may then forward the call to a JSP template to format the result. * *

Form parameters are retrieved using getParameter */ public interface ServletRequest { /** * Returns the prococol, e.g. "HTTP/1.1" */ public String getProtocol(); /** * Returns the request scheme, e.g. "http" */ public String getScheme(); /** * Returns the server name handling the request. When using virtual hosts, * this returns the virtual host name, e.g. "vhost1.caucho.com". * * This call returns the host name as the client sees it, which means that * if ipchains, load balancing, or proxying is involved this call returns the * correct call for forming urls, but may not contain the host that Resin is * actually listening on. */ public String getServerName(); /** * Returns the server port used by the client, e.g. 80. * * This call returns the port number as the client sees it, which means that * if ipchains, load balancing, or proxying is involved this call returns the * correct call for forming urls, but may not return the actual port that * Resin is listening on. * * This call should not be used to test for an ssl connection * (getServerPort() == 443), {@link #isSecure()} is provided for that purpose. */ public int getServerPort(); /** * Returns the IP address of the remote host, i.e. the client browser. */ public String getRemoteAddr(); /** * Returns the DNS hostname of the remote host, i.e. the client browser. */ public String getRemoteHost(); /** * Returns the port of the remote host, i.e. the client browser. * * @since 2.4 */ public int getRemotePort(); /** * This call returns the ip of the host actually used to connect to the Resin * server, which means that if ipchains, load balancing, or proxying is * involved this call does not return the correct host for * forming urls. * * @since 2.4 */ public String getLocalAddr(); /** * Returns the IP address of the local host, i.e. the server. * * This call returns the name of the host actaully used to connect to the * Resin server, which means that if ipchains, load balancing, or proxying * is involved this call does not return the correct host for * forming urls. * * @since 2.4 */ public String getLocalName(); /** * Returns the port of the local host. * * This call returns the port number actually used to connect to the Resin * server, which means that if ipchains, load balancing, or proxying is * involved this call does not return the correct port for * forming urls. * * This call should not be used to test for an ssl connection * (getServerPort() == 443), {@link #isSecure()} is provided for that purpose. * * @since 2.4 */ public int getLocalPort(); /** * Overrides the character encoding specified in the request. * setCharacterEncoding must be called before calling * getReader or reading any parameters. */ public void setCharacterEncoding(String encoding) throws java.io.UnsupportedEncodingException; /** * Returns a form parameter. When the form contains several parameters * of the same name, getParameter returns the first. * *

For example, calling getParameter("a") with the * the query string a=1&a=2 will return "1". * * @param name the form parameter to return * @return the form value or null if none matches. */ public String getParameter(String name); /** * Returns all values of a form parameter. * *

For example, calling getParameterValues("a") * with the the query string a=1&a=2 will * return ["1", "2"]. * * @param name the form parameter to return * @return an array of matching form values or null if none matches. */ public String []getParameterValues(String name); /** * Returns an enumeration of all form parameter names. * *

   * Enumeration e = request.getParameterNames();
   * while (e.hasMoreElements()) {
   *   String name = (String) e.nextElement();
   *   out.println(name + ": " + request.getParameter(name));
   * }
   * 
*/ public Enumeration getParameterNames(); /** * Returns a Map of the form parameters. The map is immutable. * The keys are the form keys as returned by getParameterNames * and the values are String arrays as returned by * getParameterValues. */ public Map getParameterMap(); /** * Returns an InputStream to retrieve POST data from the request. * The stream will automatically end when the end of the POST data * is complete. */ public ServletInputStream getInputStream() throws IOException; /** * Returns a reader to read POSTed data. Character encoding is * based on the request data and is the same as * getCharacterEncoding() */ public BufferedReader getReader() throws IOException, IllegalStateException; /** * Returns the character encoding of the POSTed data. */ public String getCharacterEncoding(); /** * Returns the content length of the data. This value may differ from * the actual length of the data. Newer browsers * supporting HTTP/1.1 may use "chunked" encoding which does * not make the content length available. * *

The upshot is, rely on the input stream to end when the data * completes. */ public int getContentLength(); /** * Returns the request's mime-type. */ public String getContentType(); /** * Returns the request's preferred locale, based on the Accept-Language * header. If unspecified, returns the server's default locale. */ public Locale getLocale(); /** * Returns an enumeration of all locales acceptable by the client. */ public Enumeration getLocales(); /** * Returns true if the connection is secure, e.g. it uses SSL. */ public boolean isSecure(); /** * Returns an attribute value. * * @param name the attribute name * @return the attribute value */ public Object getAttribute(String name); /** * Sets an attribute value. * * @param name the attribute name * @param o the attribute value */ public void setAttribute(String name, Object o); /** * Enumerates all attribute names in the request. */ public Enumeration getAttributeNames(); /** * Removes the given attribute. * * @param name the attribute name */ public void removeAttribute(String name); /** * Returns a request dispatcher for later inclusion or forwarding. This * is the servlet API equivalent to SSI includes. uri * is relative to the request URI. Absolute URIs are relative to * the application prefix (getContextPath()). * *

If getRequestURI() is /myapp/dir/test.jsp and the * uri is "inc.jsp", the resulting page is * /myapp/dir/inc.jsp. *

   *   RequestDispatcher disp;
   *   disp = getRequestDispatcher("inc.jsp?a=b");
   *   disp.include(request, response);
   * 
* * @param uri path relative to getRequestURI() * (including query string) for the included file. * @return RequestDispatcher for later inclusion or forwarding. */ public RequestDispatcher getRequestDispatcher(String uri); /** * Returns the path of the URI. * * @deprecated */ public String getRealPath(String uri); // // Servlet 3.0 // /** * Returns DispatcherType * @return */ public DispatcherType getDispatcherType(); /** * Returns the servlet context for the request * * @since Servlet 3.0 */ public ServletContext getServletContext(); // // Servlet 3.0 async // /** * Starts an async/comet mode * * @since Servlet 3.0 */ public AsyncContext startAsync() throws IllegalStateException; /** * Starts an async mode * * @since Servlet 3.0 */ public AsyncContext startAsync(ServletRequest servletRequest, ServletResponse servletResponse) throws IllegalStateException; /** * Returns the async context for the request * * @since Servlet 3.0 */ public AsyncContext getAsyncContext(); /** * Returns true if the request is in async. * * @since Servlet 3.0 */ public boolean isAsyncStarted(); /** * Returns true if the request supports async * * @since Servlet 3.0 */ public boolean isAsyncSupported(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy