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):
support for multiple result sets
support multiple queries separated by a "go" instruction
Include a button that "Begins" a transaction and rename the
"Go" button to the "Send" button and then add an "End" button, which submits the
transaction
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.
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).