com.lukasfeiler.httpd
Class HTTPSocket

java.lang.Object
  extended byjava.lang.Thread
      extended bycom.lukasfeiler.tcpserver.TCPSocket
          extended bycom.lukasfeiler.httpd.HTTPSocket
All Implemented Interfaces:
java.lang.Runnable

public class HTTPSocket
extends com.lukasfeiler.tcpserver.TCPSocket

This class implements a single HTTP socket connected to a client.

Version:
0.1
Author:
Lukas Feiler

Field Summary
 
Fields inherited from class com.lukasfeiler.tcpserver.TCPSocket
in, out, server
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
HTTPSocket(java.net.Socket s, java.lang.Integer socketId, com.lukasfeiler.tcpserver.TCPServer server, int connectionTimeout)
           
 
Method Summary
protected  java.io.File getDocumentRoot()
          Returns the document root by calling HTTPServer.getDocumentRoot()
 java.lang.String getHeader(java.util.Vector headers, java.lang.String header)
          Returns a specific header.
 void internalRedirect(java.io.File f, java.lang.String requestedResource, java.util.Vector headers)
          Internal redirect to another file
protected  boolean processHttpRequest(java.util.Vector lines)
          Processes the HTTP request and returns false if the socket is to be closed.
protected  boolean processInput()
          Processes the input and returns false if the socket is to be closed.
 void run()
          Starts everything off.
 void writeInternalError(HTTPSocket socket, java.io.File f, java.lang.String requestedResource, java.util.Vector headers, java.lang.String message)
          Write 500 Internal error.
 void writeNotFoundError(HTTPSocket socket, java.io.File f, java.lang.String requestedResource, java.util.Vector headers, java.lang.String message)
          Write 404 Not Found error.
 void writePermissionDeniedError(HTTPSocket socket, java.io.File f, java.lang.String requestedResource, java.util.Vector headers, java.lang.String message)
          Write 404 Not found error.
 void writeStandardHTTPHeaders(java.lang.String contentType)
           
 
Methods inherited from class com.lukasfeiler.tcpserver.TCPSocket
close, getFullName, getIP, getLocalIP, getLocalPort, getOut, getPort, getServer, getSocketId, getStartTimeInMillis, print, println, readLine, remove
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

HTTPSocket

public HTTPSocket(java.net.Socket s,
                  java.lang.Integer socketId,
                  com.lukasfeiler.tcpserver.TCPServer server,
                  int connectionTimeout)
           throws java.io.IOException
Method Detail

run

public void run()
Starts everything off.


processInput

protected boolean processInput()
                        throws java.io.IOException,
                               com.lukasfeiler.tcpserver.TCPSocketEndOfStreamException
Processes the input and returns false if the socket is to be closed.

Throws:
java.io.IOException
com.lukasfeiler.tcpserver.TCPSocketEndOfStreamException

processHttpRequest

protected boolean processHttpRequest(java.util.Vector lines)
                              throws HTTPSocketInvalidRequestException
Processes the HTTP request and returns false if the socket is to be closed.

Throws:
HTTPSocketInvalidRequestException

internalRedirect

public void internalRedirect(java.io.File f,
                             java.lang.String requestedResource,
                             java.util.Vector headers)
Internal redirect to another file


writeInternalError

public void writeInternalError(HTTPSocket socket,
                               java.io.File f,
                               java.lang.String requestedResource,
                               java.util.Vector headers,
                               java.lang.String message)
Write 500 Internal error.


writeNotFoundError

public void writeNotFoundError(HTTPSocket socket,
                               java.io.File f,
                               java.lang.String requestedResource,
                               java.util.Vector headers,
                               java.lang.String message)
Write 404 Not Found error.


writeStandardHTTPHeaders

public void writeStandardHTTPHeaders(java.lang.String contentType)
                              throws java.io.IOException
Throws:
java.io.IOException

writePermissionDeniedError

public void writePermissionDeniedError(HTTPSocket socket,
                                       java.io.File f,
                                       java.lang.String requestedResource,
                                       java.util.Vector headers,
                                       java.lang.String message)
Write 404 Not found error.


getDocumentRoot

protected java.io.File getDocumentRoot()
Returns the document root by calling HTTPServer.getDocumentRoot()

See Also:
HTTPServer.getDocumentRoot()

getHeader

public java.lang.String getHeader(java.util.Vector headers,
                                  java.lang.String header)
Returns a specific header.