Docstoc

forms Distributed Web Systems Laboratory exercises

Document Sample
forms Distributed Web Systems Laboratory exercises Powered By Docstoc
					Distributed Web Systems



                                 Laboratory exercises
                       Handling HTML forms and request headers

Learning goals:

    Learn to extract and process data submitted through HTML forms using servlets
    Learn to access and analyse HTTP request headers with servlets


Explanations:

It is assumed in this lab that you are now familiar with the structure of a web application, the
contents of a web application deployment descriptor file, and with using Ant for building and
installing your web applications. If you have difficulties with any of these things, please
revisit the previous lab materials.

You may notice that you have to perform some routine tasks, such as printing out HTML
document headers, over and over in many different servlets. To avoid coding them again
every time, you can put the most frequently used bits of code into a separate helper class and
call them from your servlets. One such helper class called “ServletUtilities” is available on
the course web page. You may want to download it, save together with your other java
sources, and use in your application. For example, you may find its “headWithTitle” method
very useful for printing out HTML page headers.

What to do:

    Create a new Ant project directory for this lab with the “src” and “web” sub-
     directories. Put the Ant build files from the course web page into this project
     directory.

    Create a simple HTML page with the following
     elements:

           a. a welcome message;
           b. a registration form with three text input
              fields for user name, password and
              telephone number;
           c. a form submit button. Use an
              appropriate action URL for this form
              (e.g. “Register”). You will map a
              servlet to this URL later on.

           Please see an example in the illustration.
           You are of course encouraged to use fancier
           HTML formatting and layout for a nicer looking page.

    Put this HTML page into the “web” sub-directory and name it as “index.html”, so that
     it becomes the default page for your web application.
Distributed Web Systems


    Write a servlet that performs the following functions:

          a. Read the input data submitted by the user.
          b. Check that the name field is not empty. If it is empty, the servlet should output
             an error page that explains the problem to the user and asks her to repeat.
             Provide a link back to the input form.
          c. Check that the length of the password is at least 8 symbols. If the password is
             too short, the servlet should output an error page that explains the problem to
             the user and asks her to repeat. Provide a link back to the input form.
          d. If the input data are acceptable, output a greeting web page that greets the user
             by her name and also prints out the type of the web browser used for
             registration.

    Remember to place all your .java sources into the “src” sub-directory, so that Ant
     could compile them automatically.

    Create a web application deployment descriptor for your application and put it into
     “web/WEB-INF”. You can modify the descriptor from the previous lab, or the one
     available on the course web page. The URL pattern for your servlet must match the
     action URL in the form on your “index.html” page.

    Compile and deploy your application using Ant.

    Verify the behaviour of your code for acceptable and incorrect inputs.


Well done! Now you can handle user input from HTML forms and also access information
from the HTTP request headers. In the rest of this lab, you will spend some more time
working with headers.

    Write a servlet that prints out the following information:

          a.   Request method;
          b.   Request URL;
          c.   Request protocol;
          d.   A table displaying names and values for all HTTP headers in this request.

          If your lab time is running out, you may use the ready code for this lab from the
          course web page. However, do spend time in this case familiarising yourself with
          that code.

    Add this servlet to your application descriptor and create an appropriate URL
     mapping for it there.

    Re-deploy your application. That is, do “ant remove” followed by “ant install”.
     Remember that all Ant commands must be issued in your project directory (where the
     Ant build files are).

    Call the servlet and analyse its output.
Distributed Web Systems


    You are done! Remove your application.

				
DOCUMENT INFO