A Connector is a component responsible receiving requests from,
and returning responses to, a client application. A Connector performs
the following general logic:
- Receive a request from the client application.
- Create (or allocate from a pool) appropriate Request and Response
instances, and populate their properties based on the contents of
the received request, as described below.
- For all Requests, the
connector ,
protocol , remoteAddr ,
response , scheme ,
secure , serverName ,
serverPort and stream
properties MUST be set. The contentLength
and contentType properties are also generally set.
- For HttpRequests, the
method , queryString ,
requestedSessionCookie ,
requestedSessionId , requestedSessionURL ,
requestURI , and secure properties
MUST be set. In addition, the various addXxx
methods must be called to record the presence of cookies, headers,
and locales in the original request.
- For all Responses, the
connector , request ,
and stream properties MUST be set.
- No additional headers must be set by the Connector for
HttpResponses.
- Identify an appropriate Container to use for processing this request.
For a stand alone Catalina installation, this will probably be a
(singleton) Engine implementation. For a Connector attaching Catalina
to a web server such as Apache, this step could take advantage of
parsing already performed within the web server to identify the
Context, and perhaps even the Wrapper, to utilize in satisfying this
Request.
- Call the
invoke() method of the selected Container,
passing the initialized Request and Response instances as arguments.
- Return any response created by the Container to the client, or
return an appropriate error message if an exception of any type
was thrown.
- If utilizing a pool of Request and Response objects, recycle the pair
of instances that was just used.
It is expected that the implementation details of various Connectors will
vary widely, so the logic above should considered typical rather than
normative. |
Methods Summary |
---|
public Request | createRequest()Create (or allocate) and return a Request object suitable for
specifying the contents of a Request to the responsible Container.
|
public Response | createResponse()Create (or allocate) and return a Response object suitable for
receiving the contents of a Response from the responsible Container.
|
public org.apache.coyote.Adapter | getAdapter()Get the Adapter used by this connector.
|
public boolean | getAuthPassthroughEnabled()Returns the value of this connector's authPassthroughEnabled flag.
|
public java.security.cert.X509Certificate[] | getCertificates(Request request)Get the underlying WebContainer certificate for the request
|
public Container | getContainer()Return the Container used for processing requests received by this
Connector.
|
public java.lang.String | getDefaultHost()Gets the default host of this Connector.
|
public boolean | getEnableLookups()Return the "enable DNS lookups" flag.
|
public org.apache.catalina.net.ServerSocketFactory | getFactory()Return the server socket factory used by this Container.
|
public java.lang.String | getInfo()Return descriptive information about this Connector implementation.
|
public com.sun.appserv.ProxyHandler | getProxyHandler()Gets the ProxyHandler instance associated with this CoyoteConnector.
|
public int | getRedirectPort()Return the port number to which a request should be redirected if
it comes in on a non-SSL port and is subject to a security constraint
with a transport guarantee that requires SSL.
|
public java.lang.String | getScheme()Return the scheme that will be assigned to requests received
through this connector. Default value is "http".
|
public boolean | getSecure()Return the secure connection flag that will be assigned to requests
received through this connector. Default value is "false".
|
public Service | getService()Return the Service with which we are associated (if any).
|
public java.lang.String | getURIEncoding()Get the encoding to be used for byte<-->char conversion for
data sent/received via this Connector
|
public void | initialize()Invoke a pre-startup initialization. This is used to allow connectors
to bind to restricted ports under Unix operating environments.
|
public void | setAdapter(org.apache.coyote.Adapter adapter)Set the Adapter used by this connector.
|
public void | setAuthPassthroughEnabled(boolean authPassthroughEnabled)Sets the value of this connector's authPassthroughEnabled flag.
|
public void | setContainer(Container container)Set the Container used for processing requests received by this
Connector.
|
public void | setDefaultHost(java.lang.String defaultHost)Sets the default host for this Connector.
|
public void | setEnableLookups(boolean enableLookups)Set the "enable DNS lookups" flag.
|
public void | setFactory(org.apache.catalina.net.ServerSocketFactory factory)Set the server socket factory used by this Container.
|
public void | setProxyHandler(com.sun.appserv.ProxyHandler proxyHandler)Sets the ProxyHandler implementation for this CoyoteConnector to use.
|
public void | setRedirectPort(int redirectPort)Set the redirect port number.
|
public void | setScheme(java.lang.String scheme)Set the scheme that will be assigned to requests received through
this connector.
|
public void | setSecure(boolean secure)Set the secure connection flag that will be assigned to requests
received through this connector.
|
public void | setService(Service service)Set the Service with which we are associated (if any).
|
public void | setURIEncoding(java.lang.String encoding)Set the encoding to be used for byte<-->char conversion for
data sent/received via this Connector
|