Milestone 1 (due: April 18)

At this point, each student should be able to demstrate a basic ability to work with servlets.  For this milestone, you have two choices.  Choose either milestone delivery but not both (unless you're overcome with time and ambition).   The level of difficulty is approximately the same for each, but perhaps the second option is less useful but more fun.  Delivery of either will satisfy the requirement for milestone 1, and both count equally.

OPTION 1

Create a servlet that essentially performs as a poor-person's Interactive SQL interface.  The servlet will offer a multi-line edit box that will allow users to enter a SQL command.  There will be a button called "Go" that will cause that SQL command to be executed (the connection and URL can be hardcoded in the servlet).  Another button, "Clear", will clear out the text and allow a new command to be entered.

Once the user has selected "Go", the servlet will execute the SQL statement on behalf of the client, and will receive a ResultSet back at which point the servlet must (a) extract the data and column names and (b) convert that to an html table and (c) return that to the client for display.  That display should look reasonably professional, like this (at a minimum):
  

Column 1 Name Column 2 Name Column 3 Name Column 4 Name Column 5 Name
data data data data data
data data data data data

Of course, that display would be relevant if the user entered a query.  What if the user enters an update?  In that case, your servlet should return the SQL return for the command, often the number of rows affected:

5 rows affected

or something like that. Among the other capabilities you might wish to include in your Servlet isql application (for extra credit):

OPTION 2

Create a servlet that implements the logic and database access for a hangman game.  For complete instructions and more information, follow the instructions Matei has created here.

Deliverables:

Demonstration of one of the above options via a URL that we can hit for testing and delivery of all HTML and Java Source code for the application. 
 

Hand-in Instructions:

1. Send a tarred/gzipped archive containing your source code, a makefile, and a readme file. Name your tarball according to your uid and the assignment number. For example, my milestone 1 would be named: "skuehn.milestone1.tar.gz". Send the email to ta-51024@cs.uchicago.edu with 'CSPP51024 M1' as the subject. The readme file should describe your design and list/brag about any optional features you included.
2. Include in the body of the message a link to your SQL-interface or hangman website. We will use this site as well as your own tomcat server for testing.
3. Run your tomcat server from Monday to Tuesday of next week (April 19-20). You will be able to stop and restart the server for the lab on Monday night. I recommend logging in to a cspp51024 machine remotely to control your tomcat server (see the list of class machines at: http://stuff.cs.uchicago.edu/ipstat/status/ssh/location/402).

ta-51024@cs.uchicago.edu