
Creating a Simple Web Application Using a MySQL Database
This document describes how to create a simple web application that connects to a MySQL database
server. It also covers some basic ideas and technologies in web development, such as
JavaServer Pages (JSP),
JavaServer Pages Standard Tag Library
(JSTL), the Java Database Connectivity (JDBC) API, and two-tier, client-server architecture.
This tutorial is designed for beginners who have a basic understanding of web development
and are looking to apply their knowledge using a MySQL database.
MySQL is a popular Open Source database management system
commonly used in web applications due to its speed, flexibility and reliability. MySQL employs
SQL, or Structured Query Language, for accessing and processing data contained in
databases.
This tutorial continues from the Connecting to a MySQL Database
tutorial and assumes that you have already created a MySQL database named MyNewDatabase,
which you have registered a connection for in the NetBeans IDE. The table data used in that
tutorial is contained in
ifpwafcad.sql
and is also required for this tutorial. This SQL file creates two tables, Subject and
Counselor, then populates them with sample data. If needed, save this file to your
computer, then open it in the NetBeans IDE and run it on the MySQL database named
MyNewDatabase.
Contents

To follow this tutorial, you need the following software and resources.
Notes:
- The NetBeans IDE 6.1
with Glassfish and MySQL Bundle Download provides you with an all-in-one package of
software required for this tutorial.
- The Java download bundle enables you to optionally install the GlassFish application
server and the Apache Tomcat servlet container 6.0.x. You must install one of these
to work through this tutorial.
- The MySQL Connector/J
JDBC Driver, necessary for communication between Java platforms
and the MySQL database protocol, is included in NetBeans IDE 6.x.
- If you need to compare your project with a working solution, you can
download the
sample application.
Planning the Structure
Simple web applications can be designed using a two-tier architecture,
in which the application communicates directly with a data source using
the Java Database Connectivity API. A user's requests are sent to a database,
and the results are sent directly back to the user. Two-tier architectures
can be easily mapped to a client-server configuration, where a user's browser
serves as the client, and a remote database reachable over the Internet
corresponds to the server.
The application you build in this tutorial involves the creation of two JavaServer
Pages. In each of these pages, you add basic HTML to implement a simple interface,
followed by SQL tags provided by JSTL technology in order to query the database.
Consider the following client-server scenario.
The welcome page (index.jsp) presents the user with a simple HTML form.
When a client requests the index.jsp page, the JSP code contained
therein is parsed, and data from the Subject database table is gathered, added
to the page, and sent to the client. The user makes a selection in the provided
HTML form and submits, which causes the client to make a request for
response.jsp. When response.jsp is parsed, data from both the
Subject and Counselor tables is gathered and inserted into the page. Finally,
the page is returned to the client and the user views data based upon his or
her selection.
Creating a New Project
In order to implement the scenario described above, you develop a simple application
for a fictitious organization named IFPWAFCAD, or The International Former
Professional Wrestlers' Association for Counseling and Development. The application
enables a user to choose a counseling subject from a drop-down list (index.jsp),
then retrieves data from the MySQL database and returns the information to the
user (response.jsp).
index.jsp
response.jsp
Create a new project in the IDE:
- Choose File > New Project (Ctrl-Shift-N; ⌘-Shift-N on Mac) from
the main menu. Under Categories select Java Web (If you are using NetBeans 6.0
or 6.1, select Web); under Projects select Web Application. Click Next.
- In Project Name, enter IFPWAFCAD.
- Step through the wizard leaving all other settings at their defaults.
Specify the server you want to use by selecting from the Server drop-down
menu. Do not select a framework. When you reach the final panel of the wizard,
click Finish.
The IDE creates a project template for the entire application, and opens
an empty JSP page (index.jsp) in the Source Editor. index.jsp
serves as the welcome page for the application. The new project is structured
according to Sun
Java
BluePrints guidelines.
Preparing the Interface
Begin by preparing a simple interface for the two pages. Both index.jsp
and response.jsp implement an HTML table to display data in a structured
fashion. index.jsp also requires an HTML form that includes a drop-down
list.
index.jsp
Make sure index.jsp is opened in the Source Editor. If it is not already
open, double-click index.jsp from IFPWAFCAD > Web Pages in the
Projects window.
- In the Source Editor, change the text between the
<title>
tags to IFPWAFCAD Homepage.
- Change the text between the
<h1> tags (<h2>
tags if you are using NetBeans 6.0 or 6.1) to Welcome to IFPWAFCAD,
the International Former Professional Wrestlers' Association for Counseling
and Development!.
Note: For further content, you can either
add HTML elements to the page using the IDE's palette, as demonstrated
below, or just copy and paste the code provided in step 8 directly into
your index.jsp page.
- Open the IDE's Palette by choosing Window > Palette (Ctrl-Shift-8;
⌘-Shift-8 on Mac) from the main menu. Hover your pointer over the
Table icon from the HTML category and note that the code snippet for the
item displays.
Click the icon, and drag and drop a table into the page in the Source
Editor, to a point just after the <h1> (or <h2>
tags). In the Insert Table dialog that displays, specify the following
values then click OK:
- Rows: 2
- Columns: 1
- Border Size: 0
The HTML table code is generated and added to your page.
- Add the following content to the table heading and the cell of
the first table row (new content in bold):
<table border="0">
<thead>
<tr>
<th>IFPWAFCAD offers expert counseling in a wide range of fields.</th>
</tr>
</thead>
<tbody>
<tr>
<td>To view the contact details of an IFPWAFCAD certified former
professional wrestler in your area, select a subject below:
</td>
</tr>
- For the bottom row of the table, drag and drop an HTML form from the
Palette into the page, directly between the second pair of
<td>
tags. In the Action text box, type in response.jsp, then
click OK.
- Type in the following text between the
<form> tags of the
form you just created:
<strong>Select a subject:</strong>
- Drag and drop a drop-down list from the Palette to a point just after
the text you just added. In the Insert Drop-down dialog that displays,
type in
subject_id for the Name text field, and click OK.
Note that the code snippet for the drop-down list is added to the form.
The number of options for the drop-down is currently not important.
Later in the tutorial you will add JSTL tags that dynamically
generate options based on the data gathered from the Subject database
table.
- Add a submit button to the form by dragging a button from the Palette
to a point just after the drop-down list you just added. Enter
submit for both the Label and Name text fields, then click OK.
- To format your code, right-click in the Source Editor, and choose Format
(Alt-Shift-F; Ctrl-Shift-F on Mac). Your code is automatically formatted,
and should now look similar to the following:
<body>
<h2>Welcome to <strong>IFPWAFCAD</strong>, the International Former
Professional Wrestlers' Association for Counseling and Development!
</h2>
<table border="0">
<thead>
<tr>
<th>IFPWAFCAD offers expert counseling in a wide range of fields.</th>
</tr>
</thead>
<tbody>
<tr>
<td>To view the contact details of an IFPWAFCAD certified former
professional wrestler in your area, select a subject below:
</td>
</tr>
<tr>
<td>
<form action="response.jsp">
<strong>Select a subject:</strong>
<select name="subject_id">
<option></option>
</select>
<input type="submit" value="submit" name="submit" />
</form>
</td>
</tr>
</tbody>
</table>
</body>
To view this page in a browser, right-click in the Source Editor and choose
Run File (Shift-F6). When you do this, the JSP page is automatically
compiled and deployed to your server. The IDE opens your default browser
to display the page from its deployed location.

response.jsp
In order to prepare the interface for response.jsp you must first
create the file in your application. Note that most of the content that
displays in this page is generated dynamically using JSP technology.
Therefore, in the following steps you add placeholders which you
will later substitute for the JSP code.
- Right-click the IFPWAFCAD project node in the Projects window and choose
New > JSP. The New JSP File dialog opens.
- In the JSP File Name field, enter
response. Note that Web Pages
is currently selected for the Location field, meaning that the file will
be created in the project's web directory. This is the same
location as where the index.jsp welcome page resides.
- Accept any other default settings and click Finish. A template for the
new
response.jsp page is generated and opens in the Source
Editor. A new JSP node also displays under Web Pages in the Projects window.

- In the Source Editor, change the title to
IFPWAFCAD -
{placeholder}.
- Remove the
<h1>Hello World!</h1> (or <h1>JSP Page</h1>
if you are working in NetBeans 6.0 or 6.1) line between the <body>
tags, then copy and paste the following HTML table into the body of the page:
<table border="0">
<thead>
<tr>
<th colspan="2">{placeholder}</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Description: </strong></td>
<td><span style="font-size:smaller; font-style:italic;">{placeholder}</span></td>
</tr>
<tr>
<td><strong>Counselor: </strong></td>
<td>{placeholder}
<br>
<span style="font-size:smaller; font-style:italic;">
member since: {placeholder}</span>
</td>
</tr>
<tr>
<td><strong>Contact Details: </strong></td>
<td><strong>email: </strong>
<a href="mailto:{placeholder}">{placeholder}</a>
<br><strong>phone: </strong>{placeholder}
</td>
</tr>
</tbody>
</table>
To view this page in a browser, right-click in the Source Editor
and choose Run File (Shift-F6). The page is compiled, deployed to
your server, and opened in your default browser. Your response.jsp
page should display similar to the following.
style.css
Create a simple stylesheet that enhances the interface display.
- Right-click the IFPWAFCAD project node in the Projects window and choose
New > Other. In the New File wizard, make sure Web is selected under
Categories, then choose Cascading Style Sheet and click Next.
- Type
style for CSS File Name and click Finish. The IDE creates
an empty CSS file and places it in the same project location as
index.jsp and response.jsp. Note that a node for
style.css now displays within the project in the Projects
window, and the file opens in the Source Editor.
- In the Source Editor, add the following content to the
style.css
file:
body {
font-family: Verdana, Arial, sans-serif;
font-size: smaller;
padding: 50px;
color: #555;
}
h1, h2 {
text-align: left;
letter-spacing: 6px;
font-size: 1.4em;
color: #be7429;
font-weight: normal;
width: 450px;
}
table {
width: 580px;
padding: 10px;
background-color: #c5e7e0;
}
th {
text-align: left;
border-bottom: 1px solid;
}
td {
padding: 10px;
}
a:link {
color: #be7429;
font-weight: normal;
text-decoration: none;
}
a:link:hover {
color: #be7429;
font-weight: normal;
text-decoration: underline;
}
- Link the stylesheet to
index.jsp and response.jsp:
In both pages, add the following line between the <head>
tags:
<link rel="stylesheet" type="text/css" href="style.css">
This document assumes that you understand how the stylesheet functions,
and how it affects corresponding HTML elements found in index.jsp
and response.jsp.
When working with CSS in the IDE, you can take
advantage of the CSS Style Builder and CSS Preview. Together, these tools
provide extensive support for creating style rules and viewing elements
when coupled with style attributes.
For example, place your cursor within the h1, h2 rule in style.css,
then open CSS Preview (Window > Other > CSS Preview):
CSS Preview demonstrates how an element renders in a browser. Also note that
the preview automatically refreshes as you make changes to a rule, providing
a real-time textual representation of style elements from the IDE.
Setting up a Connection Pool
The most efficient way to implement communication between the server and database is
to set up a database connection pool. Creating a new connection for each
client request can be very time-consuming, especially for applications that continuously
receive a large number of requests. To remedy this, numerous connections are created
and maintained in a connection pool. Any incoming requests that require access to the
application's data layer use an already-created connection from the pool. Likewise,
when a request is completed, the connection is not closed down, but returned to the
pool.
Note: From this point forward, you need you ensure that you have a MySQL
database named MyNewDatabase set up and containing sample data provided in
ifpwafcad.sql.
This SQL file creates two tables, Subject and Counselor, then
populates them with sample data. If you have not already done this, or if you need help
with this task, see Connecting to a MySQL Database before
proceeding with this tutorial.
- Setting up a JNDI Datasource
- Referencing the Datasource from the Application
- Adding the Database Driver's JAR File to the Server
Setting up a JNDI Datasource
Both GlassFish and Tomcat contain Database Connection Pooling (DBCP) libraries that
provide connection pooling functionality in a way that is transparent to you as a
developer. In either case, you need to configure a
JNDI Datasource for the
server that creates an interface which your application can use for connection
pooling. Depending on whether you are using GlassFish or Tomcat, do the following:
GlassFish
The IDE provides enhanced support for GlassFish, enabling you to specify
resources using a wizard:
- In the Projects window, right-click the Server Resources node and
choose New > Other. The New File wizard opens. Under Categories,
select GlassFish. Under File Types, select JDBC Resource. Click Next.
- Under General Attributes, choose the Create New JDBC Connection Pool
option, then in the JNDI Name text field, type in
jdbc/IFPWAFCAD. Click Next.
- Click Next again to skip Additional Properties, then in Step 4, type
in
IfpwafcadPool for JDBC Connection Pool Name. Make sure
the Extract from Existing Connection option is selected, and choose
jdbc:mysql://localhost:3306/MyNewDatabase from the drop-down
list. Click Next.
Note: The wizard detects any database
connections that have been set up in the IDE. Therefore, you need to
have already created a connection to the MyNewDatabase database
at this point. You can verify what connections have been created by
opening the Services window (Ctrl-5; ⌘-5 on Mac) and looking for
connection nodes ( ) under the Databases category.
- Accept any other default settings within the wizard, then click Finish.
By completing the wizard, you declared a new datasource and connection pool
for the application. In the Projects window, open the newly created Server
Resources > sun-resources.xml file and note that, within the
<resources> tags, a jdbc resource and connection pool have
been declared containing the values you previously specified.
To confirm that a new datasource and connection pool
are indeed registered with GlassFish, you can deploy the project to the server,
then locate the resources in the IDE's Services window:
- In the Projects window, right-click the IFPWAFCAD project node and
choose Deploy (or Undeploy and Deploy). The server starts up if not
already running, and the project is compiled and deployed to it.
- Open the Services window (Ctrl-5) and expand the Servers > GlassFish >
Resources > JDBC > JDBC Resources and Connection Pools nodes.
Note that the new datasource and connection pool are now displayed:
Tomcat
Configure a JNDI Datasource in Tomcat by adding a declaration for your resource to
the application's context.xml file. This is the application's context
container, which enables you to specify application meta-data necessary for
the server in order to deploy and run the application. There are various locations
where you can specify context elements, such as your server's global
$CATALINA_HOME/conf/context.xml file. By adding resource declarations to
your application's context.xml file however, you limit the resource to that
application, and do not need to configure anything within the server itself. For
more information, see the
Apache Tomcat
Configuration Reference.
- From the Projects window, open the application's context container
in the Source Editor by double-clicking the Web Pages > META-INF >
context.xml file.
- Add the following
<Resource> tags (changes below in
bold) as a declaration for the JNDI resource:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/IFPWAFCAD">
<Resource name="jdbc/IFPWAFCAD" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="root" password="nbuser" driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/MyNewDatabase"/>
</Context>
Notice that the declaration is using root and nbuser
as your database's username and password. For a more thorough explanation of JNDI
DataSource configuration, including a description of the parameters used in the
above resource declaration, refer to the Apache Tomcat 6.0
JNDI
Datasource HOW-TO.
Referencing the Datasource from the Application
You need to reference the JNDI resource you just configured from the web application.
To do so, you can create an entry in the application's deployment descriptor
(web.xml).
Deployment descriptors are XML-based text files that contain information describing
how an application is to be deployed to a specific environment. For example, they
are normally used to specify application context parameters and behavioral patterns,
security settings, as well as mappings for servlets, filters and listeners.
Do the following to reference the JNDI Datasource in the application's deployment
descriptor.
- In the Projects window, expand the Web Pages > WEB-INF subfolder and double-click
web.xml. A graphical editor for the file displays in the Source Editor.
- Click the References tab located along the top of the Source Editor. Expand the
Resource References heading, then click Add. The Add Resource Reference dialog opens.
- For Resource Name, enter the resource name that you gave when configuring the
JNDI Datasource for the server above (
jdbc/IFPWAFCAD). The Description field
is optional, but you can enter a human-readable description of the resource, e.g.,
Database for IFPWAFCAD application. Note that the default resource type
is javax.sql.DataSource. Leave all fields that are provided by default and
click OK. The new resource is added under the Resource References heading:
To verify that the resource is now added to the web.xml file,
click the XML tab located along the top of the Source Editor. Notice
that the following <resource-ref> tags are now included:
<resource-ref>
<description>Database for IFPWAFCAD application</description>
<res-ref-name>jdbc/IFPWAFCAD</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
Adding the Database Driver's JAR File to the Server
Adding the database driver's JAR file is another step that is vital to enabling the
server to communicate with your database. Ordinarily, you would need to locate your
database driver's installation directory and copy the mysql-connector-java-5.x-bin.jar
file from the driver's root directory into the library folder of the server you are
using. Fortunately, the IDE's server management is able to detect at deployment whether
the JAR file has been added - and if not, it does so automatically.
In order to demonstrate this, open the Servers window (Choose Tools > Servers).
For both GlassFish and Tomcat, the IDE provides a JDBC driver deployment option.
If the option is enabled, it initiates a check to determine whether any drivers
are required for the server's deployed applications. In the case of MySQL, if the
driver is required and it is missing, the IDE's bundled driver is deployed to the
appropriate location on the server.
Note: If you are using GlassFish V3, the JDBC driver
deployment option is not enabled by default.
Depending on the server you are using, do the following.
GlassFish V3
- Select GlassFish V3 in the left pane.
- In the main pane, select the Enable JDBC Driver Deployment option.

- Before you close the window, make a note of the GlassFish installation directory.
This is indicated in the Domains folder text field.
- Click Close to exit the Servers window.
- On your computer, navigate to the GlassFish installation directory and drill into
the
domains > domain1 > lib subfolder.
- Deploy your project to the server. In the IDE's Projects window, choose Deploy (or
Undeploy and Deploy) from the right-click menu of the project node. You can view
progress in the IDE's Output window (Ctrl-4; ⌘-4 on Mac). The output indicates
that the MySQL driver is deployed to a location in the GlassFish server.
Now, if you return to the domain1/lib subfolder on your computer, you can
see that the mysql-connector-java-5.x-bin.jar file has been automatically
added.
When you connect to GlassFish in the IDE, you are
actually connecting to an instance of the application server. Each
instance runs applications in a unique domain, and so here the JAR file is
located in domain1, which is the default domain created upon installing
GlassFish. Note that the Domain Name text field in the Servers window indicates
the name of the domain your server is using.
GlassFish V2
- Select GlassFish V2 in the left pane.
- Click on the Options tab in the main pane. Notice that the JDBC Driver(s) Deployment
Enabled option is selected by default.

- Locate the GlassFish installation directory. You can do this by clicking the
Connection tab and noting the path listed in the Domains folder text field.
- Click Close to exit the Servers window.
- On your computer, navigate to the GlassFish installation directory and drill into
the
domains > domain1 > lib subfolder. If
you have already deployed your project to the server, you will find that the
mysql-connector-java-5.x-bin.jar file is added here. If not, deploy
your project now (next step).
- In the Projects window, choose Deploy (or Undeploy and Deploy) from the right-click
menu of the project node. You can view progress in the IDE's Output window (Ctrl-4;
⌘-4 on Mac). The output indicates that the MySQL driver is deployed to a location
in the GlassFish server.
Now, if you return to the domain1/lib subfolder on your computer, you can
see that the mysql-connector-java-5.x-bin.jar file has been automatically
added.
When you connect to GlassFish in the IDE, you are
actually connecting to an instance of the application server. Each
instance runs applications in a unique domain, and so here the JAR file is
located in domain1, which is the default domain created upon installing
GlassFish. You can verify this by viewing the Domain Name text field in the
Connection tab.
Tomcat
- Open the Servers window by choosing Tools > Servers from main menu.
- Select Tomcat 6.0 in the left panel, then click the Deployment tab in the main pane.
Notice that the Enable JDBC driver deployment option is selected by default.

- Click the Classes tab. This tab displays all of the JAR files contained in the server's
lib folder. If you have already deployed your project to the server, you will
find that the mysql-connector-java-5.x-bin.jar file is listed here. If not, click
Close to exit the Servers window, and deploy your project now (next step).
- In the Projects window, choose Deploy (or Undeploy and Deploy) from the right-click menu
of the project node. You can view progress in the IDE's Output window (Ctrl-4; ⌘-4 on
Mac). The output indicates that the MySQL driver is deployed to
<install-dir>/lib in the Tomcat server.

- Reopen the Servers window (Tools > Servers) and view the JAR files listed under the
Classes tab. You can see that the MySQL driver has been automatically added.

Adding Dynamic Logic
If you return to the index.jsp and response.jsp placeholders
created earlier in the tutorial, you can add JSP and JSTL code to enable pages
to generate content dynamically, i.e., based on user input. To do so,
you need to perform the following 3 steps:
- Adding the JSTL Library to the Project's Classpath
- Adding
taglib Directives to the JSP Pages
- Adding JSP and JSTL Code
Adding the JSTL Library to the Project's Classpath
In order to make better use of the JSP resources at your disposal, you can make use
of the JavaServer Pages Standard Tag
Library (JSTL) to access and display data taken from the Logic Layer. This library
comes bundled with the IDE. You therefore need to make sure the JSTL library is added
to the web project's compilation classpath, then add the relevent taglib
directives to each of the JSP pages. This allows the server we are using to identify
the tags when it reads them from the JSP pages. Depending on whether you are using
GlassFish or Tomcat, do the following:
GlassFish V3 and Tomcat
- In the Projects window, right-click the project's Libraries node and choose
Add Library. Select the JSTL 1.1 library and click Add Library. The IDE contains
the JSTL 1.1 library by default, and allows you to add it to a project's classpath
in this manner.

- Expand the Libraries node and note that two new JAR files have been added:
the JSTL library's
standard.jar, and the jstl.jar.
You can further expand the standard.jar file to view JSTL's four
basic areas of functionality.
 |
The JSTL library includes four basic areas of functionality:
core:
common, structural tasks such as iteration and conditionals
fmt:
internationalization and locale-sensitive formatting tags
sql:
SQL tags
xml:
manipulation of XML documents
|
GlassFish V2
Do nothing! GlassFish includes the JSTL library by default. You can verify this by
expanding the Libraries > GlassFish node.
GlassFish V2 contains the appserv-jstl.jar file, which defines
all standard tags in the JSTL library.
Adding taglib Directives to the JSP Pages
Regardless of what server you are using, you need to add the necessary taglib
directives to JSP pages:
- Open both
index.jsp and response.jsp in the Source Editor.
Add the following directives to the top of both pages:
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
Adding JSP and JSTL Code
Finally, add the code to each page. Both pages require that you implement an
SQL query that utilizes the JSTL <sql:query> tags and the datasource
created earlier in the tutorial.
index.jsp
In order to dynamically display the contents of the form in index.jsp,
you need to access all names from the Subject database table:
- Add the following SQL query beneath the
taglib directives you
added in the previous step:
<sql:query var="subjects" dataSource="jdbc/IFPWAFCAD">
SELECT subject_id, name FROM Subject
</sql:query>
The JSTL <sql:query>
tags enable you to use SQL query language directly in a JSP page. A
resultset is generated from the query, and the acquired data
can then be inserted into the page using an iterator tag
(<c:forEach>)
from the JSTL core library.
- Replace the empty
<option> tags in the HTML form with the
following iterator (changes in bold):
<select name="subject_id">
<c:forEach var="subject" items="${subjects.rows}">
<option value="${subject.subject_id}">${subject.name}</option>
</c:forEach>
</select>
The forEach tag loops through all id and name values from
the generated resultset, and inserts each pair into the HTML option
tags. In this manner, the form's drop-down list is populated with data.
- Save changes (Ctrl+S), then right-click in the Source Editor and choose Run File
(Shift-F6). The file is compiled and deployed to the server, and
index.jsp
renders in the browser. The drop-down list now contains subject names that were
retrieved from the database:
response.jsp
For response.jsp, you need to access data from both the Subject and
Counselor tables that correspond to the id submitted by the user.
This is accomplished using an SQL query and the datasource created earlier in the tutorial:
- Add the following SQL query beneath the
taglib directives you added in
the previous step:
<sql:query var="counsSubjRs" maxRows="1" dataSource="jdbc/IFPWAFCAD">
SELECT s.name, s.description, c.first_name, c.nick_name,
c.last_name, c.member_since, c.telephone, c.email
FROM Subject as s, Counselor as c
WHERE c.counselor_id = s.counselor_idfk
AND s.subject_id = ? <sql:param value="${param.subject_id}"/>
</sql:query>
A resultset named counsSubjRs is generated from the above
SQL query, which contains all data associated with the subject_id
submitted by the user. Note that data from the Counselor table is
acquired by mapping counselor_idfk from Subject to
counselor_id from Counselor.
- Add the following declaration beneath the SQL query from the previous step:
<c:set var="counsSubj" scope="request" value="${counsSubjRs.rows[0]}"/>
The <c:set>
tag enables you to set the resultset to a scoped variable, so that
you can retrieve its contents at a later stage.
- In the HTML, replace all placeholders with JSP code that allows you
to retrieve and display the data held in the
counsSubj resultset
(Changes below shown in bold):
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<link rel="stylesheet" type="text/css" href="style.css">
<title>${counsSubj.name}</title>
</head>
<body>
<table>
<tr>
<th colspan="2">${counsSubj.name}</th>
</tr>
<tr>
<td><strong>Description: </strong></td>
<td><span style="font-size:smaller; font-style:italic;">${counsSubj.description}</span></td>
</tr>
<tr>
<td><strong>Counselor: </strong></td>
<td><strong>${counsSubj.first_name} ${counsSubj.nick_name} ${counsSubj.last_name}</strong>
<br><span style="font-size:smaller; font-style:italic;">
<em>member since: ${counsSubj.member_since}</em></span></td>
</tr>
<tr>
<td><strong>Contact Details: </strong></td>
<td><strong>email: </strong>
<a href="mailto:${counsSubj.email}">${counsSubj.email}</a>
<br><strong>phone: </strong>${counsSubj.telephone}</td>
</tr>
</table>
</body>
</html>
Deploying and Running the Project
Whether you are using the GlassFish application server or Tomcat, the process
for deploying your project is the same. If you installed GlassFish or Tomcat
through the IDE download, your server is already registered in the IDE. If
you need to make any changes to server settings, or would like to register a
different server with the IDE, choose Tools > Servers from the main menu
to open the Server Manager.
To deploy the IFPWAFCAD project to the server:
- From the Projects window, right-click the project node and choose Deploy
(If you are using NetBeans 6.0 or 6.1, choose Undeploy and Deploy). The
IDE compiles the project, starts the server, then deploys the project to
it. You can see any output generated in the Output window. The output
should complete with a
BUILD SUCCESSFUL message.
To check that the application has indeed been deployed to the server, open
the Services window (Ctrl-5) and expand the Servers node. All servers that
are registered in the IDE are listed here. For GlassFish, expand Applications
> Web Applications to view the application. For Tomcat, expand Web
Applications to view the IPFWAPCAD application.
To run the application:
- In the Projects window, right-click the IFPWAFCAD project node and choose
Run. The
index.jsp page opens in the IDE's default browser.
NetBeans 6.5 now provides a Compile on Save feature.
Simply saving a file triggers the IDE to recompile and deploy it to the server
automatically. That way, compilation and deployment take place entirely in the
background. Thus, when you run a project, you can be sure the deployment contains
the latest changes.
When index.jsp displays in the browser, select a subject from the
drop-down list and click submit. You should now be forwarded to
the response.jsp page, showing details corresponding to your selection:
See Also
This concludes the Creating a Simple Web Application Using a MySQL Database tutorial.
This document demonstrated how to create a simple web application that connects to a
MySQL database. It also demonstrated how to construct an application using a basic
two-tier architecture, and utilized JSTL and JSP technologies as a means of accessing
and displaying data dynamically.
For related or more advanced tutorials, see the following resources:
|
|