Page I
JavaServer Pages
Chapter 5
Generating Dynamic
Content
Click to Buy:
By Hans Bergsten
Printer Friendly Version
JSP is all about generating dynamic content: content that
differs based on user input, time of day, the state of an external system, or
any other runtime conditions. JSP provides you with lots of tools for
generating this content. In this book, you will learn about all of
them--standard actions, custom actions, JavaBeans, and scripting elements.
Before we do that, however, let's start with a few simple examples to get a
feel for how the basic JSP elements work.
In this chapter, we develop a page for displaying the current
date and time, and look at the JSP directive element and how to use JavaBeans
in a JSP page along the way. Next, we look at how to process user input in
your JSP pages and make sure it has the appropriate format. We also look at
how you can convert special characters in the output, so they don't confuse
the browser.
What Time Is It?
Recall from Chapter 3, JSP Overview,
that a JSP page is just a regular HTML page with a few special elements. JSP
pages should have the file extension .jsp, which tells
the server that the page needs to be processed by the JSP container. Without
this clue, the server is unable to distinguish a JSP page from any other type
of file and sends it unprocessed to the browser.
When working with JSP pages, you really just need a regular text
editor such as Notepad on Windows or Emacs on Unix. Appendix E, JSP Resource Reference, however, lists a number of tools
that may make it easier for you, such as syntax-aware editors that color-code
JSP and HTML elements. Some Interactive Development Environments (IDEs)
include a small web container that allows you to easily execute and debug the
page during development. There are also several web page authoring tools--the
type of tools often used when developing regular HTML pages--that support JSP.
I don't recommend that you use them initially; it's easier to learn how JSP
works if you see the raw page elements before you use tools that hide
them.
The first example JSP page, named date.jsp, is shown in Example
5-1.
Example 5-1: JSP Page Showing the Current Date and Time (date.jsp)
<%@ page language="java" contentType="text/html" %>
<html>
<body bgcolor="white">
<jsp:useBean id="clock" class="java.util.Date" />
The current time at the server is:
<ul>
<li>Date: <jsp:getProperty name="clock" property="date" />
<li>Month: <jsp:getProperty name="clock" property="month" />
<li>Year: <jsp:getProperty name="clock" property="year" />
<li>Hours: <jsp:getProperty name="clock" property="hours" />
<li>Minutes: <jsp:getProperty name="clock" property="minutes" />
</ul>
</body>
</html>
The date.jsp page displays the current
date and time. We'll look at all the different pieces soon, but first let's
run the example to see how it works. Assuming you have installed all book
examples as described in Chapter 4, Setting Up the JSP
Environment, first start the Tomcat server and load the http://localhost:8080/ora/ URL in a browser. You can then
run Example
5-1 by clicking the "Current Date/Time example" link from the book
examples main page, shown in Figure
5-1. You should see a result like the one shown in Figure
5-2.
Figure 5-1. JSP book examples main page
|
|
Figure 5-2. Current Date/Time JSP page example
|
|
Notice that the month seems to be off by one and the year is
displayed as 100. That's because the java.util.Date
class we use here numbers months from 0 to 11, so January is 0, February is 1,
and so on, and it reports year as the current year minus 1900. That's just the
way this example works. As you will see later, there are much better ways to
display dates.
The page shown in Example
5-1 contains both regular HTML elements and JSP elements. The HTML
elements are used as-is, defining the layout of the page. If you use the View
Source function in your browser, you notice that none of the JSP elements are
visible in the page source. That's because the JSP elements are processed by
the server when the page is requested, and only the resulting output is sent
to the browser. To see the unprocessed JSP page in a separate window, click on
the source link for the date.jsp file in the book
examples main page. The source link uses a special servlet to send the JSP
page as-is to the browser instead of letting the server process it. This makes
it easier for you to compare the source page and the processed result.
Let's look at each piece of Example
5-1 in detail.