User Tools

Site Tools


proj1

Project 1

Summary

This project has the exact same requirement as Project 0. The difference is that we need to implement it using Java EE rather than Perl.

Resources

The (highly readable) authoritative documents on Servlets and JSP are posted under Resources along with their APIs. Also posted is a tutorial and a link to a site with JEE highlights.

Base Requirement

See the page of Project 0.

Possible Variations

The same variations listed in Project 0 apply as-is to this project. In addition, the following enhancements over our reference implementation (posted as Proj1B.war) are to be explored:

  • Persist the webapp data when the controller is destroyed and load it when it starts.
  • When you implement the above data persistence, pay attention to concurrency. In addition, avoid mixing concerns. Specifically, saving data is the concern of the model; the name of the file is the concern of the end-user; the path leading to the file is environmental and is therefore the concern of the controller.
  • Migrate messages (such as Cannot be Blank) from the controller to the view.
  • Make one error message appear in red and the other in blue.
  • Reset the user's count if the user remained idle for 1 minute. Do this even if the session has not expired yet.
  • Send an error message if the used URL includes the string “York” (case insensitive), e.g. /york.do. Ideally, set some unused HTTP error status code and have web.xml auto serve an error page (see the <error-page> tag in web.xml).
  • Deploy your webapp on red. To that end, install tomcat (via the tomcat_install command) and then start it via tomcat_start. Add web.xml to your webapp (see posted sample and instructions) and comment out the annotation import line. Export your webapp to a war and put it in the webapps directory. If you need to make (minor) changes in red, edit the source files and compile them using tomcat_compile. Alternatively, use the ''eclipseEE' command to launch eclipse on red.

The following two variations require filters and listeners:

  • If a client managed to enter over five countries within a session, flag it as a “Power User” and post its IP at the top of each served page.
  • Inject a new validation rule: “countries less than three characters are not allowed during lunch hour” :-D
proj1.txt · Last modified: 2010/10/09 22:45 by roumani