org.eclipse.jetty.server
Class HttpConnection

java.lang.Object
  extended by org.eclipse.jetty.server.HttpConnection
All Implemented Interfaces:
Connection
Direct Known Subclasses:
Ajp13Connection

public class HttpConnection
extends Object
implements Connection

A HttpConnection represents the connection of a HTTP client to the server and is created by an instance of a Connector. It's prime function is to associate Request and Response instances with a EndPoint.

A connection is also the prime mechanism used by jetty to recycle objects without pooling. The Request, Response, HttpParser, HttpGenerator and HttpFields instances are all recycled for the duraction of a connection. Where appropriate, allocated buffers are also kept associated with the connection via the parser and/or generator.


Nested Class Summary
 class HttpConnection.Output
           
 class HttpConnection.OutputWriter
           
 
Field Summary
protected  Connector _connector
           
protected  EndPoint _endp
           
protected  Generator _generator
           
protected  ServletInputStream _in
           
protected  HttpConnection.Output _out
           
protected  Parser _parser
           
protected  PrintWriter _printWriter
           
protected  Request _request
           
protected  HttpFields _requestFields
           
protected  Response _response
           
protected  HttpFields _responseFields
           
protected  Server _server
           
protected  HttpURI _uri
           
protected  HttpConnection.OutputWriter _writer
           
 
Constructor Summary
  HttpConnection(Connector connector, EndPoint endpoint, Server server)
          Constructor
protected HttpConnection(Connector connector, EndPoint endpoint, Server server, Parser parser, Generator generator, Request request)
           
 
Method Summary
 void cancelTimeout(Timeout.Task task)
           
 void commitResponse(boolean last)
           
 void completeResponse()
           
 void flushResponse()
           
 Object getAssociatedObject()
           
 Connector getConnector()
           
static HttpConnection getCurrentConnection()
           
 EndPoint getEndPoint()
           
 Generator getGenerator()
           
 ServletInputStream getInputStream()
          Get the inputStream from the connection.
 ServletOutputStream getOutputStream()
           
 Parser getParser()
           
 PrintWriter getPrintWriter(String encoding)
           
 Request getRequest()
           
 HttpFields getRequestFields()
           
 int getRequests()
           
 boolean getResolveNames()
           
 Response getResponse()
           
 HttpFields getResponseFields()
           
 long getTimeStamp()
           
 void handle()
           
protected  void handleRequest()
           
 void include()
           
 void included()
           
 boolean isConfidential(Request request)
           
 boolean isExpecting100Continues()
           
 boolean isExpecting102Processing()
           
 boolean isIdle()
           
 boolean isIncluding()
           
 boolean isIntegral(Request request)
          Find out if the request is INTEGRAL security.
 boolean isResponseCommitted()
           
 boolean isSuspended()
           
 void reset(boolean returnBuffers)
           
 void scheduleTimeout(Timeout.Task task, long timeoutMs)
           
 void setAssociatedObject(Object associatedObject)
           
protected static void setCurrentConnection(HttpConnection connection)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_connector

protected final Connector _connector

_endp

protected final EndPoint _endp

_server

protected final Server _server

_uri

protected final HttpURI _uri

_parser

protected final Parser _parser

_requestFields

protected final HttpFields _requestFields

_request

protected final Request _request

_in

protected ServletInputStream _in

_generator

protected final Generator _generator

_responseFields

protected final HttpFields _responseFields

_response

protected final Response _response

_out

protected HttpConnection.Output _out

_writer

protected HttpConnection.OutputWriter _writer

_printWriter

protected PrintWriter _printWriter
Constructor Detail

HttpConnection

public HttpConnection(Connector connector,
                      EndPoint endpoint,
                      Server server)
Constructor


HttpConnection

protected HttpConnection(Connector connector,
                         EndPoint endpoint,
                         Server server,
                         Parser parser,
                         Generator generator,
                         Request request)
Method Detail

getCurrentConnection

public static HttpConnection getCurrentConnection()

setCurrentConnection

protected static void setCurrentConnection(HttpConnection connection)

getParser

public Parser getParser()
Returns:
the parser used by this connection

getRequests

public int getRequests()
Returns:
the number of requests handled by this connection

getTimeStamp

public long getTimeStamp()
Returns:
The time this connection was established.

getAssociatedObject

public Object getAssociatedObject()
Returns:
Returns the associatedObject.

setAssociatedObject

public void setAssociatedObject(Object associatedObject)
Parameters:
associatedObject - The associatedObject to set.

getConnector

public Connector getConnector()
Returns:
Returns the connector.

getRequestFields

public HttpFields getRequestFields()
Returns:
Returns the requestFields.

getResponseFields

public HttpFields getResponseFields()
Returns:
Returns the responseFields.

isConfidential

public boolean isConfidential(Request request)
Returns:
The result of calling getConnector().isCondidential(request), or false if there is no connector.

isIntegral

public boolean isIntegral(Request request)
Find out if the request is INTEGRAL security.

Parameters:
request -
Returns:
true if there is a connector and it considers request to be integral

getEndPoint

public EndPoint getEndPoint()
Returns:
The EndPoint for this connection.

getResolveNames

public boolean getResolveNames()
Returns:
false (this method is not yet implemented)

getRequest

public Request getRequest()
Returns:
Returns the request.

getResponse

public Response getResponse()
Returns:
Returns the response.

getInputStream

public ServletInputStream getInputStream()
                                  throws IOException
Get the inputStream from the connection.

If the associated response has the Expect header set to 100 Continue, then accessing the input stream indicates that the handler/servlet is ready for the request body and thus a 100 Continue response is sent.

Returns:
The input stream for this connection. The stream will be created if it does not already exist.
Throws:
IOException

getOutputStream

public ServletOutputStream getOutputStream()
Returns:
The output stream for this connection. The stream will be created if it does not already exist.

getPrintWriter

public PrintWriter getPrintWriter(String encoding)
Returns:
A PrintWriter wrapping the output stream. The writer is created if it does not already exist.

isResponseCommitted

public boolean isResponseCommitted()

handle

public void handle()
            throws IOException
Specified by:
handle in interface Connection
Throws:
IOException

scheduleTimeout

public void scheduleTimeout(Timeout.Task task,
                            long timeoutMs)

cancelTimeout

public void cancelTimeout(Timeout.Task task)

reset

public void reset(boolean returnBuffers)

handleRequest

protected void handleRequest()
                      throws IOException
Throws:
IOException

commitResponse

public void commitResponse(boolean last)
                    throws IOException
Throws:
IOException

completeResponse

public void completeResponse()
                      throws IOException
Throws:
IOException

flushResponse

public void flushResponse()
                   throws IOException
Throws:
IOException

getGenerator

public Generator getGenerator()

isIncluding

public boolean isIncluding()

include

public void include()

included

public void included()

isIdle

public boolean isIdle()
Specified by:
isIdle in interface Connection

isSuspended

public boolean isSuspended()
Specified by:
isSuspended in interface Connection
See Also:
Connection.isSuspended()

isExpecting100Continues

public boolean isExpecting100Continues()

isExpecting102Processing

public boolean isExpecting102Processing()


Copyright © 1995-2009 Mort Bay Consulting. All Rights Reserved.