This document describes an example of using URL rewriting and hidden form fields to maintain client state. The Home page links to a Login page containing a form for a username and password. Submitting the form calls the LoginServlet, which validates the credentials against a database using a UserDAO. If valid, the user is redirected to a personalized page welcoming them by name.