In my thesis I created a standard web server implementation in Java. I created a user friendly interface also to control the application and created tests to make sure the server works fine. The application was developed in Java Standard Edition so no premade web based component was used in the development. Developing the application one of most important goal was to make the components interchangeable, so that one will be able to change the implementations easily.
On the user interface of the application we are able to permit IP addresses of incoming connections, we are able to provide username and password to make the the clients authenticate themselves, we can query our subnet or Internet IP address. We can monitor the contents being downloaded by the clients or arbitrarily cancel their tasks. Besides these features we can create log file of the events and we are able to pull it into the server applicaton for further inspection. For making performance enhancements I created differenct implementations of performance based components which can be controller via the GUI. These components are able to put and keep some files in memory, schedule incoming requests, change thread management or to make smarter HTTP communication.
In my thesis I created some JMeter tests as well so that I could see the performance and behaviour difference between mine and the one built into the JDK.