本文介绍了如何创建与 MySQL 数据库连接的简单、分布式 Web 应用程序。此外,本文还涉及 Web 开发的一些基本想法和技术,如 Java Server Pages 和三层架构,我们会在构造 Web 应用程序时详细介绍。本教程专为基本了解 Java 编程和 Web 开发,并渴望实践所学知识的初学者设计。
作为一种流行的开放源数据库管理系统,MySQL凭借其速度、灵活性和可靠性方面的优势普遍用于 Web 应用程序中。MySQL 采用 SQL 或 Structured Query 语言,访问并处理数据库中包含的数据。
本教程是 Connecting to a MySQL Database 教程的继续。本教程假设您已在NetBeans IDE 中创建并配置了到 MySQL 数据库的连接。您还需要 ifpwafcad.sql 中包括的数据库表数据。该 SQL 文件创建了两个表,counselors 和 subjects,然后使用样例数据填充它们。将该文件保存到本地目录中,然后在 NetBeans 中打开它并在您的 MySQL 数据库中运行它。在本文中,我们工作的数据库命名为 test。
预计持续时间:40分钟
本教程将介绍以下主题:
l 获得软件
l 规划结构
l 创建一个新项目
l 准备 Web 页面
l 部署到服务器
l 实现数据层
l 实现逻辑层
l 实现演示层
l 下一步
开始之前,确保您在计算机上安装了如下软件:
l NetBeans IDE 5.5
l Java SE Development Kit (JDK™) version 5.0 或更高版本
l MySQL 数据库
l JDBC Driver for MySQL
l Sun Java System Application Server
注意:本教程中未严格要求使用 Sun Java System Application Server (SJSAS),因为您可以使用 Tomcat, 它是与 NetBeans IDE 绑定的 Web 服务器。然而,如果您计划在 IDE 中开发应用程序,那么应用程序服务器会提供很多工具和技术支持,使开发人员的工作更轻松。
简单的 Web 应用程序通常采用三层架构设计,其中的用户界面、功能流程逻辑和数据访问与存储均可独立地进行维护。换句话说,这三层的每一层代表了可在自己平台上运行的模块(因此使用术语“分布式”)。
对于本教程中构建的应用程序而言,演示层或用户界面由 JSP 页面表示,这些页面用来准备发送给客户端浏览器的 HTML。我们可以使用几个简单的 Java 类来编码中间层或逻辑层。最后,可以使用 MySQL 数据库中的几个表实现数据层。考虑以下的客户端服务器场景:
浏览器中显示的欢迎页面 (index.jsp) 包含一个简单窗体,允许访问者指定数据。当一个请求传递到包含数据的服务器时,开始访问 JSP 页面(response.jsp),该页面可立即将指定数据传递给 SubjectCounselor.java,这样信息检索流程可以开始了。Java 类处理数据并利用 AccessDB.java 准备发送给数据库的 SQL 查询。然后,AccessDB.java 与数据库连接,按照 SQL 查询指定的内容,从 subjects 和 counselors 表中检索数据。最后,启动返回行程,response.jsp 中包含的检索到的数据形成了服务器对客户端的响应。
为了实现上述场景,我们为名为 IFPWAFCAD 的虚拟组织或者国际前职业摔跤手咨询与发展联盟开发一个简单的应用程序。利用该应用程序,用户可以从下拉列表 (index.jsp) 中选择咨询主题,然后从 MySQL 数据库中检索数据并将信息返回给用户 (response.jsp):
让我们首先在 IDE 中创建一个新项目:
- 激活 NetBeans IDE 并从 File 菜单中选择 New Project (Ctrl+Shift+N)。在 Categories 下选择 Web; 并在 Projects 下选择 Web Application。单击 Next。
- 在 Project Name 中,输入 IFPWAFCAD。从 Server 下拉列表中选择你计划使用的服务器。就我们的目的而言,保留所有其他设置为默认值即可,然后单击 Finish。
注意:如果您下载了 SJSAS 但是没有在 NetBeans IDE 中注册它,可以通过单击 Server 下拉列表右边的 Manage 按纽轻松注册它。Server Manager 打开,使您能够注册新的服务器。有关更多信息,请参见 IDE 的 Help Contents (F1) 中的 Registering a Sun Java System Application Server Instance。
IDE 为整个应用程序创建一个项目模板,并在 Source Editor 中打开一个空白 JSP 页面(index.jsp)。要更好的了解项目模板的结构,请参见 IDE 的 Help Contents (F1) 中的 About Structuring Web Source Files。
准备 Web 页面
应用程序的演示层包括两个 JSP 页面:欢迎页面和将指定数据返回给用户的响应页面。我们可以首先为这两个页面创建占位符。这意味着,现在将添加 HTML,然后一旦实现了逻辑层就添加特定于 JSP 的代码。
实现欢迎页面
让我们首先将 index.jsp 转换到 IFPWAFCAD 的欢迎页面:
- 确保在 Source Editor 中打开了 index.jsp。如果没有打开,从 Projects 窗口的 IFPWAFCAD > Web Pages > index.jsp 中双击它。然后在 Source Editor 中将标题更改为 IFPWAFCAD Homepage。
- 现在,使用以下代码替换主体部分:
<body>
<br>
<h2 align="center">Welcome to IFPWAFCAD, the International Former Professional
<br>Wrestlers' Association for Counseling and Development!</h2>
<br><br>
<table width="55%" align="center">
<tr>
<td><strong>IFPWAFCAD offers expert counseling in a wide range of fields.</strong></td>
</tr>
<tr>
<td><br>To view the contact details of an IFPWAFCAD certified former
<br>professional wrestler in your area, select a subject below:</td>
</tr>
<tr>
<td>
<form action="response.jsp" method="post">
<br>
<strong>Select a subject:</strong>
<select name="subject_id" size="1" >
<option value="1">Marriage Guidance</option>
<option value="2">Financial Consultancy</option>
</select>
<input type="submit" name="submit" value="submit">
</form>
</td>
</tr>
</table>
</body>
这基本上在表内创建了一个简单的窗体。随后,当我们实现 JSP 代码时,将使用直接从数据库中获得所有主题名称的循环替换样例主题。此外,注意窗体提交给我们将要创建的 response.jsp 页面。
实现响应页面
要创建 response.jsp 的占位符,执行以下操作:
- 在 Projects 窗口中右键单击 IFPWAFCAD 项目节点,并选择 New > JSP....。New JSP File 对话框打开。
- 在 JSP File Name 字段中,输入 response。注意 Location 字段当前选择了 Web Pages,意味着将在与欢迎页面相同的目录中创建该文件。
- 接受所有其他默认值并单击 Finish。生成新 response.jsp 页面的模板且该模板在 Source Editor 中打开。新的 JSP 节点还显示在 Projects 窗口中的 Web Pages 下:
- 现在,在 Source Editor 中将该文件标题更换为更有意义的标题,如“(Chosen Subject)”。
- 下一步,用以下代码替换模板主体部分:
<body>
<br>
<h2 align="center">(Chosen Subject)</h2>
<br>
<table width="60%" align="center" cellpadding="10">
<tr>
<td valign="top" width="25%"><strong>Description: </strong></td>
<td><em>(subject description)</em><br></td>
</tr>
<tr>
<td valign="top"><strong>Counselor: </strong></td>
<td><span style="font-size:large"><strong>(counselor's name)</strong></span>
<br><span style="align:center">
<em>member since: (a date)</em></span></td>
</tr>
<tr>
<td valign="top"><strong>Contact Details: </strong></td>
<td><strong>email: </strong><a href="mailto:<(an email address)>"><(an email address)></a>
<br><strong>phone: </strong><(a telephone number)></td>
</tr>
</table>
</body>
一旦我们在 JSP 中编码,就会为将要生成的输出创建一个 HTML 模板。注意,上面所有括号中的字段都可以通过访问数据层动态生成。
要了解应用程序在用户那看起来是怎样的,我们需要部署目前所得到的应用程序到 Web 服务器,以便在浏览器上看到页面。注意我们的 JSP 页面尚未包含任何 JSP 代码,因此您现在可以简单地更改扩展名为 .htm,然后在浏览器中单独打开它们。然而,我们需要 Web 服务器编译 JSP 代码以及逻辑层的 Java 类,因此也可能开始使用 Web 服务器。
无论您正在运行 NetBeans IDE 捆绑的 Tomcat 还是 SJSAS