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.
[Folders] (40pt)
Modify the servlet you developed in Homework 1
so that a bookmark folder has an additional attribute type. The type of a folder can be
either public or private (don't confuse folder types
with folder names, which may also be called Public or Private). The
bookmarks in a public folder
can be viewed by everybody, but the bookmarks in a private folder can only be viewed
by the owner of the folder.
For this assignment, also add the feature to create new folders. For
example, add a link (or button) to the
user's home page which says "Create New Folder", and when the user
clicks the link (or button), the servlet displays a simple form that
looks
like the following and lets the user to create a new folder:
Folder Name: Public Private
Note that all bookmark operations (add, delete, edit) should work for
user-created folders.
[Login
and Logout] (30pt)
As we discussed before, all public folders are viewable by everybody,
but operations such as accessing private folders, adding, editting, or
deleting bookmarks can only be performed by the owner of the bookmarks.
In particular, if one of these operations is attempted, the servlet
should first check whether the user is already
logged in, and if so, check whether the user is the owner of the
folder/bookmark. If either of these checks fails, the user should be
redirected to a Login page, where
they can login as the owner of the bookmarks.
It is
completely up to you to
decide whether to implement this feature 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 procedure cannot
be
bypassed.
User authentication must
happen on the server side, e.g. you should not use JavaScript to verify
username and password.
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 "logout", 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.
[Edit Bookmark] (30pt)
Implement the Edit Bookmark feature which we left out in the last
assignment. Note that the interface for editting a bookmark is almost
identical to the interface for adding a bookmark shown in Homework 1,
except that when a user edits a bookmark, the form should be pre-filled
with the current information of the bookmark. Also note that a user
should be able to use the Edit Bookmark feature to move a bookmark from
one folder to another by simply selecting a different folder.