Top Description Inners Fields Constructors Methods
org.mortbay.servlet

public Class ProxyServlet

extends Object
implements Servlet
Class Inheritance
All Implemented Interfaces
javax.servlet.Servlet
Known Direct Subclasses
org.mortbay.servlet.ProxyServlet.Transparent
Imports
java.io.IOException, .InputStream, .OutputStream, java.net.HttpURLConnection, .InetSocketAddress, .MalformedURLException, .Socket, .URL, .URLConnection, java.util.Enumeration, .HashSet, javax.servlet.Servlet, .ServletConfig, .ServletContext, .ServletException, .ServletRequest, .ServletResponse, .UnavailableException, javax.servlet.http.HttpServletRequest, .HttpServletResponse, org.mortbay.util.IO

Proxy Servlet.

Forward requests to another server either as a standard web proxy (as defined by RFC2616) or as a transparent proxy.

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static class
ProxyServlet.Transparent

Transparent Proxy.

Field Summary

Modifier and TypeField and Description
protected ServletConfig
protected ServletContext
protected HashSet<E>

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
destroy()

Implements javax.servlet.Servlet.destroy.

Called by the servlet container to indicate to a servlet that the servlet is being taken out of service.
public ServletConfig
getServletConfig()

Implements javax.servlet.Servlet.getServletConfig.

Returns a ServletConfig object, which contains initialization and startup parameters for this servlet.
public String
getServletInfo()

Implements javax.servlet.Servlet.getServletInfo.

Returns information about the servlet, such as author, version, and copyright.
public void
public void
init(ServletConfig
a ServletConfig object containing the servlet's configuration and initialization parameters
config
)

Implements javax.servlet.Servlet.init.

Called by the servlet container to indicate to a servlet that the servlet is being placed into service.
protected URL

Returns:

The URL to which the request should be proxied.
proxyHttpURL
(String
The scheme of the received request.
scheme
,
String
The server encoded in the received request(which may be from an absolute URL in the request line).
serverName
,
int
The server port of the received request (which may be from an absolute URL in the request line).
serverPort
,
String
The URI of the received request.
uri
)

Resolve requested URL to the Proxied URL

public void
service(ServletRequest
the ServletRequest object that contains the client's request
req
,
ServletResponse
the ServletResponse object that contains the servlet's response
res
)

Implements javax.servlet.Servlet.service.

Called by the servlet container to allow the servlet to respond to a request.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

_configback to summary
protected ServletConfig _config
_contextback to summary
protected ServletContext _context
_DontProxyHeadersback to summary
protected HashSet<E> _DontProxyHeaders

Constructor Detail

ProxyServletback to summary
public ProxyServlet()

Method Detail

destroyback to summary
public void destroy()

Implements javax.servlet.Servlet.destroy.

Doc from javax.servlet.Servlet.destroy.

Called by the servlet container to indicate to a servlet that the servlet is being taken out of service. This method is only called once all threads within the servlet's service method have exited or after a timeout period has passed. After the servlet container calls this method, it will not call the service method again on this servlet.

This method gives the servlet an opportunity to clean up any resources that are being held (for example, memory, file handles, threads) and make sure that any persistent state is synchronized with the servlet's current state in memory.

getServletConfigback to summary
public ServletConfig getServletConfig()

Implements javax.servlet.Servlet.getServletConfig.

Doc from javax.servlet.Servlet.getServletConfig.

Returns a ServletConfig object, which contains initialization and startup parameters for this servlet. The ServletConfig object returned is the one passed to the init method.

Implementations of this interface are responsible for storing the ServletConfig object so that this method can return it. The GenericServlet class, which implements this interface, already does this.

Returns:ServletConfig

the ServletConfig object that initializes this servlet

getServletInfoback to summary
public String getServletInfo()

Implements javax.servlet.Servlet.getServletInfo.

Doc from javax.servlet.Servlet.getServletInfo.

Returns information about the servlet, such as author, version, and copyright.

The string that this method returns should be plain text and not markup of any kind (such as HTML, XML, etc.).

Returns:String

a String containing servlet information

handleConnectback to summary
public void handleConnect(HttpServletRequest request, HttpServletResponse response) throws IOException
initback to summary
public void init(ServletConfig config) throws ServletException

Implements javax.servlet.Servlet.init.

Doc from javax.servlet.Servlet.init.

Called by the servlet container to indicate to a servlet that the servlet is being placed into service.

The servlet container calls the init method exactly once after instantiating the servlet. The init method must complete successfully before the servlet can receive any requests.

The servlet container cannot place the servlet into service if the init method

  1. Throws a ServletException
  2. Does not return within a time period defined by the Web server
Parameters
config:ServletConfig

a ServletConfig object containing the servlet's configuration and initialization parameters

Exceptions
ServletException:
if an exception has occurred that interferes with the servlet's normal operation
proxyHttpURLback to summary
protected URL proxyHttpURL(String scheme, String serverName, int serverPort, String uri) throws MalformedURLException

Resolve requested URL to the Proxied URL

Parameters
scheme:String

The scheme of the received request.

serverName:String

The server encoded in the received request(which may be from an absolute URL in the request line).

serverPort:int

The server port of the received request (which may be from an absolute URL in the request line).

uri:String

The URI of the received request.

Returns:URL

The URL to which the request should be proxied.

serviceback to summary
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException

Implements javax.servlet.Servlet.service.

Doc from javax.servlet.Servlet.service.

Called by the servlet container to allow the servlet to respond to a request.

This method is only called after the servlet's init() method has completed successfully.

The status code of the response always should be set for a servlet that throws or sends an error.

Servlets typically run inside multithreaded servlet containers that can handle multiple requests concurrently. Developers must be aware to synchronize access to any shared resources such as files, network connections, and as well as the servlet's class and instance variables. More information on multithreaded programming in Java is available in the Java tutorial on multi-threaded programming.

Parameters
req:ServletRequest

the ServletRequest object that contains the client's request

res:ServletResponse

the ServletResponse object that contains the servlet's response

Exceptions
ServletException:
if an exception occurs that interferes with the servlet's normal operation
IOException:
if an input or output exception occurs
org.mortbay.servlet back to summary

public Class ProxyServlet.Transparent

extends ProxyServlet
Class Inheritance

Transparent Proxy. This convenience extension to AsyncProxyServlet configures the servlet as a transparent proxy. The servlet is configured with init parameter: For example, if a request was received at /foo/bar and the ProxyTo was http://host:80/context and the Prefix was /foo, then the request would be proxied to http://host:80/context/bar

Field Summary

Modifier and TypeField and Description
pack-priv String
pack-priv String
Inherited from org.mortbay.servlet.ProxyServlet:
_config_context_DontProxyHeaders

Constructor Summary

AccessConstructor and Description
public
public
Transparent(String prefix, String server, int port)

Method Summary

Modifier and TypeMethod and Description
public void
init(ServletConfig
a ServletConfig object containing the servlet's configuration and initialization parameters
config
)

Overrides org.mortbay.servlet.ProxyServlet.init.

Implements javax.servlet.Servlet.init.

Called by the servlet container to indicate to a servlet that the servlet is being placed into service.
protected URL
proxyHttpURL(final String
The scheme of the received request.
scheme
,
final String
The server encoded in the received request(which may be from an absolute URL in the request line).
serverName
,
int
The server port of the received request (which may be from an absolute URL in the request line).
serverPort
,
final String
The URI of the received request.
uri
)

Overrides org.mortbay.servlet.ProxyServlet.proxyHttpURL.

Resolve requested URL to the Proxied URL
Inherited from org.mortbay.servlet.ProxyServlet:
destroygetServletConfiggetServletInfohandleConnectservice

Field Detail

_prefixback to summary
pack-priv String _prefix
_proxyToback to summary
pack-priv String _proxyTo

Constructor Detail

Transparentback to summary
public Transparent()
Transparentback to summary
public Transparent(String prefix, String server, int port)

Method Detail

initback to summary
public void init(ServletConfig config) throws ServletException

Overrides org.mortbay.servlet.ProxyServlet.init.

Implements javax.servlet.Servlet.init.

Doc from javax.servlet.Servlet.init.

Called by the servlet container to indicate to a servlet that the servlet is being placed into service.

The servlet container calls the init method exactly once after instantiating the servlet. The init method must complete successfully before the servlet can receive any requests.

The servlet container cannot place the servlet into service if the init method

  1. Throws a ServletException
  2. Does not return within a time period defined by the Web server
Parameters
config:ServletConfig

a ServletConfig object containing the servlet's configuration and initialization parameters

Exceptions
ServletException:
if an exception has occurred that interferes with the servlet's normal operation
proxyHttpURLback to summary
protected URL proxyHttpURL(final String scheme, final String serverName, int serverPort, final String uri) throws MalformedURLException

Overrides org.mortbay.servlet.ProxyServlet.proxyHttpURL.

Doc from org.mortbay.servlet.ProxyServlet.proxyHttpURL.

Resolve requested URL to the Proxied URL

Parameters
scheme:String

The scheme of the received request.

serverName:String

The server encoded in the received request(which may be from an absolute URL in the request line).

serverPort:int

The server port of the received request (which may be from an absolute URL in the request line).

uri:String

The URI of the received request.

Returns:URL

The URL to which the request should be proxied.