The good news is that you won't need to do anything too complicated with servlets for this project (although you certainly can if you like). Processing HTTP requests and returning XML and HTML documents will pretty much cover it.
If you do have access to a server, you could consider any of the following servlet engines (this is not an exhaustive list - please point me to other solutions!)
A note on services: The code above implements the servlet using the service() method, which is invoked whenever a client sends a request message. An alternate approach, when subclassing httpServlet, is to implement the doGet() and doPost() methods, which are invoked by the default implementation of service().
Which to use? For this project, it's mostly a matter of taste. One advantage to implementing doGet() and/or doPost() is that it allows your servlet to advertise the sorts of HTTP requests it understands; once you implement one of these, your servlet automatically will be able to reply to an HTTP OPTIONS request and indicate which requests it can handle.
On the other hand, if you think you might decouple your servlet from HTTP and use it with some other protocol, then service() is the right thing to use.