User input is a necessity in modern web pages. Most dynamic web sites generate pages based on user input. Unfortunately, users seldom enter information in exactly the format you need, so before you can use such input, you probably want to validate it.
And it's not only the input format that's important. Web browsers are also picky about the format of the HTML you send them. For instance, when you generate an HTML form with values taken from a database, a name such as O'Reilly can cause problems. The single quote character after the O can fool the browser into believing that it's at the end of the string, so you end up with just an O in your form.
Using JavaBeans to Process Input
As we saw earlier, a bean is often used as a container for data,
created by some server process, and used in a JSP page that displays the data.
But a bean can also be used to capture user input. The captured data can then
be processed by the bean itself or used as input to some other server
component (e.g., a component that stores the data in a database or picks an
appropriate banner ad to display). The nice thing about using a bean this way
is that all information is in one bundle. Say you have a bean that can contain
information about a person, and it captures the name, birth date, and email
address as entered by the person on a web form. You can then pass this bean to
another component, providing all the information about the user in one shot.
Now, if you want to add more information about the user, you just add
properties to the bean, instead of having to add parameters all over the place
in your code. Another benefit of using a bean to capture user input is that
the bean can encapsulate all the rules about its properties. Thus, a bean
representing a person can make sure the
property is set to a valid date.
Using a bean to capture and validate user input is one aspect of building a web application that's easy to maintain and extend as requirements change. But it's not the only option. If you're a page author and intend to use JSP to develop sites using components from third parties, you may wonder how you can capture and validate input without access to a Java programmer who can develop the beans. Don't worry; we'll see another alternative in Chapter 9, Database Access.
Processing and validating input can also be performed by a servlet instead of a JSP page. If you're a programmer, you'll find examples of this approach in Chapter 14, Combining Servlets and JSP. In this part of the book, however, we use JSP pages for all aspects of the applications so we can focus on JSP features. And one JSP feature makes it very easy to capture user input, so let's see how it's done.