Homework 5
CS320,
Spring 2005
Due: Tuesday, May 31
Please upload your files using the online
turnin server.
The files should include all the source code, documentation, and an
HTML
file hw5.html,
which
contains a link to your JSP page 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]
[Problem Description]
For this assignment, add a registration page to
the web bulletin board you developed in Homework 4
so a user can create an new account. Also implement a custom tag
<logout> so we can get rid of the last bit of scripting
element
from the application.
Again, all features described in previous assignments must work;
otherwise there will be a credit penalty of up to 30pt.
[Registration Page] (40pt)
In the registration page, ask the user to fill out a form for
username, password, first name, last name, and email, as shown in the
following example:
Your application should properly handle the following situations:
- Errors, including but not
limited to
- required fields are empty
- username is shorter than 4
characters
- username conflicts with an
existing username
- password is shorter than 6
characters
- password and re-typed
password do not match
- password consists of only letters and digits
For each type of
errors, output an error message and ask
the user to re-enter the data. Note that validation of the input data
should be implemented on the server side.
- Special characters,
especially slashes and single quotes.
- Optional fields are empty.
Note that this should not
be
handled as an error.
[Logout Tag] (20pt)
Implement a <logout> tag so that instead of using
scriptlets as
described in Homework
3, your logout code
should look somewhat like the following:
<c:if test="${!
empty param.logout}">
<bb:logout />
<c:redirect url="Home.jsp"
/>
</c:if>
[Extra Credit Work]
For extra credit, modify your application so that it supports two types
of users: regular and admin. Once an admin user is logged in, he or she
can perform several operations that are not available to regular users:
- (20pt) Delete any topic together with all the posts associated
with the topic.
- (20pt) Edit any post. The system should automatically append
"Edited by ${admin} at ${time}." at the end of the edited post, where
${admin} is the username of the admin user, and ${time} is the time
when the post was edited (or more precisely, the time when the post is
saved in the database).
- (20pt) Delete any regular user account.
- (20pt) Reset any regular user account password to a six-digit
random number.
The due date for the extra credit work is Thursday, June 2, and you may
turn it in as Homework 6. A hw6.html
must be included, which contains a link to your JSP page on the CS
server, and states which admin feature(s) you have implemented.