Please upload your files using the online turnin server.
The files should include all the source code, documentation, and an
HTML
file hw2.html, which
contains a link to your servlet on the CS server. Note that file
uploading will be disabled automatically after 11:59PM
of the due date, so please turn in your work on time.
[Reading]
Textbook Chapter 6, 7, 8, and 9, especially Section 7.5.
[Calendar]
A useful online calendar must provide some basic features, such as
support for multiple users, and support for each user to add to a
calendar their own tasks and events. Note that we use
the term events to refer to things that are associated with
certain time period, for example, "Taking CS320 from 1:30 to 3:30pm on
Thursday", and the term tasks to refer to things that are not,
for example, "Buy some milk".
In this homework, you are going to build on your Calendar servlet from Homework 1 and add priliminary multi-user support,
as well as functionalities that allow a user to manage tasks.
[Login] (30pt)
To access the calendar, a user must provide a valid username
and corresponding password. It is completely up to you to
decide whether to implement this part with one servlet, two servlets,
or some combination of servlets and HTML pages. However, whatever
implemention you choose, it has to meet the following requirements:
The login process cannot be bypassed.
User authentication must happen on the server side.
Once a user is authenticated, a session is created so the user
won't be asked for username and password repeatedly. A user may also
choose to "log out", in which case the session should be terminated.
For session tracking, you must use Servlet Session Tracking API.
Username "cysun" with password "abcd" must be an valid account.
[Tasks] (50pt)
Modify your calendar interface so that a user can add a new task or
delete an existing task. For example:
Note that the interface design is up to you, and particularly good
design will receive up to 15pt extra credit. Also note that you do not
have to save the tasks once the session is terminated - we'll leave
that for a later assignment when we start using databases.