当前位置:首页 > 系统运维 > 正文内容

用Tomcat和MySQL生成动态内容(1)

a8116255311年前 (2015-09-26)系统运维10

当因特网开始从教育和 *** 信息存储器转变成国际商业中心起,横幅广告就已经出现了。滚动横幅是 Web 页面上一块已分配的空间,每次装入或重新装入 Web 页面时,就用该空间内来显示广告 ― 随机显示或基于某些业务逻辑来显示。驱动滚动横幅广告的程序虽然相当简单,但却是重要的广告工具。正如它们的同类,如半分钟广播和电视广告一样,这些动态广告工具允许单个 Web 页面显示不同来源的广告,并使不同公司针对相同的观众建立他们产品和服务的品牌效应。

无论您怎么看待 Web 横幅广告(是的,我们都发现它们有时令人讨厌),它们已成为因特网上的一种生活方式。存在这样的事实:Web 的观众由庞大的消费者群体所组成,他们的金钱使电子商务的车轮得以转动。在因特网市场营销的短暂历史中,电子商务所有者已表现出他们愿意花大把的钱在热门站点上做横幅广告。

有些公司(如 doubleclick.net)已经通过担当应用程序服务供应商(ASP),提供诸如跟踪对特定横幅广告的点击之类的服务,从 Web 横幅现象中获利。随后这些 ASP 告诉广告客户他们的 Web 广告活动的有效程度。

当然,象 doubleclick.net 这样的 ASP 是要收费的。如果您和我们一样,那么您不会愿意在能够免费得到服务时还要花钱。稍等一会儿 ― 您可能已经听过世上没有免费的午餐这句话。不过别担心。该篇文章将花费的只是您的时间。事实上,我们将向您演示如何组成一个开放源码(即 免费)环境来建立您自己的功能强大的 Web 横幅跟踪系统。为了完成这一任务,我们挑选的“武器”是 Tomcat、MySQL、一个 Java servlet 和几个助手类。兴奋吗?那么,让我们进行软件安装吧。

安装 Tomcat 和 MySQL

MySQL 因其价格(免费)而成为一种强有力的数据库,许多公司都使用 MySQL 来处理它们的数据。由于许多公司都想以较低的预算进入 Web 市场,所以使用 MySQL 的公司的数量每天都在增加。开放源码社区已张开双臂欢迎 MySQL。有关这个功能强大的数据库的文档十分丰富,而且同时有 Linux 和 Windows 版本。

下载并安装 MySQL,采用“Typical”安装选项进行安装(对于该篇文章,我们假定您使用 MySQL 的 WinNT 版本)。完成安装后,您将注意到 MySQL 一个恼人的方面:它没有在 start 菜单中放入任何东西。您需要到数据库的安装目录(缺省情况下是 c:mysql )下,然后转至 bin 目录,在那里您会找到运行 MySQL 的可执行文件。

首先,双击 winmysqladmin.exe 文件。首次打开该文件时,会要求您输入用户名和密码。接下来,在任务栏中出现的红绿灯图标上单击鼠标右键。转至 WinNT 并选择“Start the service”以使 MySQL 在后台运行。最后,双击“mysql.exe”图标以启动“MySQL Monitor”,您将在此使用 MySQL。

使 MySQL 和 Tomcat 共同工作

既然我们已经安装了所有的软件,就让我们来看一下这个应用程序能够做什么以及我们是如何组织其架构和开发它的。

实质上,您可以使用我们的横幅 servlet 执行两个操作。首先,您可以用它查看 Web 页面上的随机横幅图像,每次装入包含横幅广告的 Web 页面时,该随机横幅图像就会出现。其次,您可以点击横幅图像,这将使您转至与装入的这个图像对应的链接。

按照 HTML,其代码类似于:

为了使用与该篇文章一起提供的代码,您必须首先解压缩这个 zip 文件(在 参考资料中),然后用命令行 javac 编译器或您喜欢的 IDE 编译这个 .java 文件。要编译该代码,请设置 CLASSPATH 以包含这两个 JAR 文件。

mm.mySQL-2.0.14-bin.jar (或从 MM MySQL 网站获取的其它任何版本)

我们应用程序的数据库部分只是用来持久存储系统中每个横幅的元数据。换句话说,我们实际上并不在数据库中存储图像文件,而只是存储指向每个图像文件的引用。在我们的数据库中,我们将使用七个列来描述每个横幅广告。

表 1 中的描述说明了每条记录将包含的内容。我们实际上将在应用程序中只使用这七个数据库列中的五个。我们的版本中没有使用 CustomerNameNumberOfClicksPurchased ,但我们把它们作为占位符放置在这里以用于扩展。您可以很容易地扩展这个应用程序,并把它用于现实的商业应用程序,其中客户为每个横幅的点击次数付款。

表 1. 数据库字段

接下来,我们创建表:


mysql> create table ADS
(IMAGEFILE VARCHAR(50) NOT NULL,
URL VARCHAR(50) NOT NULL,
CUSTOMERNAME VARCHAR(50),
NUMBEROFCLICKSPURCHASED INT(4),
NUMBEROFCLICKSREMAINING INT(4) NOT NULL,
NUMBEROFIMPRESSIONS INT(4) NOT NULL,
BANNERWEIGHT INT(4) NOT NULL);

ADS 表的“describe”操作类似于图 1 所示。

图 1. ADS 表

IMAGEFILE sitea.gif siteb.gif sitec.gif sited.gif
URL http://www.cnn.com http://www.news.com http://www.ibm.com http://www.yahoo.com
CUSTOMERNAME John Doe Albert Einstein Jane Doe Madonna
NUMBEROFCLICKSPURCHASED 100 20 30 20
NUMBEROFCLICKSREMAINING 100 20 30 20
NUMBEROFIMPRESSIONS 0 0 0 0
BANNERWEIGHT 10 10 30 10

注:Web 横幅 URL 位于本地主机,仅供测试之用。在生产环境中,URL 会指向 GIF 文件的实际位置。该 URL 实际上可以是因特网上的任何位置。

既然我们有了数据库,就需要使用刚刚填入其中的数据。我们将用 Java servlet 做到这一点。下面描述 Java servlet 代码,它将“推动”我们的努力。您或许希望花一些时间来通读该项目 zip 文件中的 BannerServlet.java 代码。如果您觉得困难,别担心;我们将花一些时间解释代码是如何工作的。

横幅体系结构

Logger 类非常简单。它有单个字段,代表我们正在写入日志的 File 对象。您可以将对单个 Logger 对象的引用传递给几个类,让这些类都写入同一个日志文件。 Logger 类允许您做以下事情。您可以:

创建日志记录器(logger)对象 向日志文件添加分隔符(“------”字符串) 通过传入调用 *** 的名称和日志消息添加一条日志项 添加 *** 启动的缺省消息 添加 *** 结束的缺省消息 删除日志文件 返回由日志记录器对象使用的 File 对象

我们将同时在 DBHandler 类和 BannerServlet 中使用 Logger 对象。

DBHandler 类

Banner 类只是一组直接对应于 ADS 数据库表中各列的值的 settergetter *** 。

BannerServlet 类

我们已经创建一个应用程序,该应用程序演示了 Apache Tomcat 和 MySQL 相互之间如何通信,并向您提供了一个能为您处理大多数数据库工作的、非常有用的可重用工具。您可以以几种方式来扩展这个应用程序,这些已超出该篇文章的范围。正如我们前面描述的那样,您可以把这个应用程序扩展成一个系统,在这个系统中,您可以根据特定点击次数或者甚至是特定的显示次数向客户收费。可以很容易地用某个其它字段替代数据库中的 CustomerName 字段,这个字段可以是另一个包含所有客户信息的表中的主键。

您可以扩充 DBHandler 类以处理数据库连接合用。此外,可以将希望用于应用程序的查询具体化成文本、特性或 XML 文件,从而允许扩充或更改查询定义而无需编写更多代码。

当因特网开始从教育和 *** 信息存储器转变成国际商业中心起,横幅广告就已经出现了。滚动横幅是 Web 页面上一块已分配的空间,每次装入或重新装入 Web 页面时,就用该空间内来显示广告 ― 随机显示或基于某些业务逻辑来显示。驱动滚动横幅广告的程序虽然相当简单,但却是重要的广告工具。正如它们的同类,如半分钟广播和电视广告一样,这些动态广告工具允许单个 Web 页面显示不同来源的广告,并使不同公司针对相同的观众建立他们产品和服务的品牌效应。

无论您怎么看待 Web 横幅广告(是的,我们都发现它们有时令人讨厌),它们已成为因特网上的一种生活方式。存在这样的事实:Web 的观众由庞大的消费者群体所组成,他们的金钱使电子商务的车轮得以转动。在因特网市场营销的短暂历史中,电子商务所有者已表现出他们愿意花大把的钱在热门站点上做横幅广告。

有些公司(如 doubleclick.net)已经通过担当应用程序服务供应商(ASP),提供诸如跟踪对特定横幅广告的点击之类的服务,从 Web 横幅现象中获利。随后这些 ASP 告诉广告客户他们的 Web 广告活动的有效程度。

当然,象 doubleclick.net 这样的 ASP 是要收费的。如果您和我们一样,那么您不会愿意在能够免费得到服务时还要花钱。稍等一会儿 ― 您可能已经听过世上没有免费的午餐这句话。不过别担心。该篇文章将花费的只是您的时间。事实上,我们将向您演示如何组成一个开放源码(即 免费)环境来建立您自己的功能强大的 Web 横幅跟踪系统。为了完成这一任务,我们挑选的“武器”是 Tomcat、MySQL、一个 Java servlet 和几个助手类。兴奋吗?那么,让我们进行软件安装吧。

安装 Tomcat 和 MySQL

MySQL 因其价格(免费)而成为一种强有力的数据库,许多公司都使用 MySQL 来处理它们的数据。由于许多公司都想以较低的预算进入 Web 市场,所以使用 MySQL 的公司的数量每天都在增加。开放源码社区已张开双臂欢迎 MySQL。有关这个功能强大的数据库的文档十分丰富,而且同时有 Linux 和 Windows 版本。

下载并安装 MySQL,采用“Typical”安装选项进行安装(对于该篇文章,我们假定您使用 MySQL 的 WinNT 版本)。完成安装后,您将注意到 MySQL 一个恼人的方面:它没有在 Start 菜单中放入任何东西。您需要到数据库的安装目录(缺省情况下是 c:mysql )下,然后转至 bin 目录,在那里您会找到运行 MySQL 的可执行文件。

首先,双击 winmysqladmin.exe 文件。首次打开该文件时,会要求您输入用户名和密码。接下来,在任务栏中出现的红绿灯图标上单击鼠标右键。转至 WinNT 并选择“Start the service”以使 MySQL 在后台运行。最后,双击“mysql.exe”图标以启动“MySQL Monitor”,您将在此使用 MySQL。

使 MySQL 和 Tomcat 共同工作

既然我们已经安装了所有的软件,就让我们来看一下这个应用程序能够做什么以及我们是如何组织其架构和开发它的。

实质上,您可以使用我们的横幅 servlet 执行两个操作。首先,您可以用它查看 Web 页面上的随机横幅图像,每次装入包含横幅广告的 Web 页面时,该随机横幅图像就会出现。其次,您可以点击横幅图像,这将使您转至与装入的这个图像对应的链接。

按照 HTML,其代码类似于:

为了使用与该篇文章一起提供的代码,您必须首先解压缩这个 zip 文件(在 参考资料中),然后用命令行 javac 编译器或您喜欢的 IDE 编译这个 .java 文件。要编译该代码,请设置 CLASSPATH 以包含这两个 JAR 文件。

mm.mySQL-2.0.14-bin.jar (或从 MM MySQL 网站获取的其它任何版本)

我们应用程序的数据库部分只是用来持久存储系统中每个横幅的元数据。换句话说,我们实际上并不在数据库中存储图像文件,而只是存储指向每个图像文件的引用。在我们的数据库中,我们将使用七个列来描述每个横幅广告。

表 1 中的描述说明了每条记录将包含的内容。我们实际上将在应用程序中只使用这七个数据库列中的五个。我们的版本中没有使用 CustomerNameNumberOfClicksPurchased ,但我们把它们作为占位符放置在这里以用于扩展。您可以很容易地扩展这个应用程序,并把它用于现实的商业应用程序,其中客户为每个横幅的点击次数付款。

表 1. 数据库字段

您需要用一些样本值来填充数据库以便确定所构建的数据库是否正确。该项目的 zip 文件中包括一些样本横幅(GIF 格式),可以使用它们以了解应用程序运行时的情况。当然,对于 Web 横幅 URL,需要声明您决定放置横幅文件的位置。可以按照下面的 SQL 语法将横幅“注册”到数据库中:


mysql> insert into ADS values('/sitea.gif','http://www.cnn.com',
  'John Doe',100,100,0,10);

使用这一语法将表 2 中显示的记录插入到数据库中。

表 2. 数据库记录

这个横幅广告 servlet 的体系结构十分简单。我们将使用四个类:

通用的 Logger 类,一个将日志消息写到文该篇文章件的类。

Logger 类非常简单。它有单个字段,代表我们正在写入日志的 File 对象。您可以将对单个 Logger 对象的引用传递给几个类,让这些类都写入同一个日志文件。 Logger 类允许您做以下事情。您可以:

创建日志记录器(logger)对象 向日志文件添加分隔符(“------”字符串) 通过传入调用 *** 的名称和日志消息添加一条日志项 添加 *** 启动的缺省消息 添加 *** 结束的缺省消息 删除日志文件 返回由日志记录器对象使用的 File 对象

我们将同时在 DBHandler 类和 BannerServlet 中使用 Logger 对象。

DBHandler 类

Banner 类只是一组直接对应于 ADS 数据库表中各列的值的 settergetter *** 。

BannerServlet 类

我们已经创建一个应用程序,该应用程序演示了 Apache Tomcat 和 MySQL 相互之间如何通信,并向您提供了一个能为您处理大多数数据库工作的、非常有用的可重用工具。您可以以几种方式来扩展这个应用程序,这些已超出该篇文章的范围。正如我们前面描述的那样,您可以把这个应用程序扩展成一个系统,在这个系统中,您可以根据特定点击次数或者甚至是特定的显示次数向客户收费。可以很容易地用某个其它字段替代数据库中的 CustomerName 字段,这个字段可以是另一个包含所有客户信息的表中的主键。

您可以扩充 DBHandler 类以处理数据库连接合用。此外,可以将希望用于应用程序的查询具体化成文本、特性或 XML 文件,从而允许扩充或更改查询定义而无需编写更多代码。

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/22434.html

分享给朋友:

“用Tomcat和MySQL生成动态内容(1)” 的相关文章

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

windows 7系统的电脑发出嘟嘟嘟的声音该怎么解决?

在某些电脑中,机器内部蜂鸣器与系统的声音输出方案是相关联的,这样一来会导致当系统输出声音时,即使电脑没有连接外部音响或耳机,也会通过内置蜂鸣器发出“嘟嘟哔哔”的声音。这个问题主要出现在Windows 7电脑中,假如你的电脑恰好遇到了这样的问题,可参考下面的方法来解决: 1、在桌面“计算机”图标上右...

windows 7系统怎么取消禁ping命令?

windows 7系统怎么取消禁ping命令?

当我在虚拟机的linux系统中ping本机的ip发现ping不通,而本机可以ping通虚拟机中的ip。应该是出于安全考虑吧,Windows 7默认在防火墙里禁止了。 1、查看主机ip 打开“开始”程序中的“附件”,找到“命令提示符”打开。输入命令:ipconfig,可以看到本机的ip是192.1...

windows 7怎么设置密码永不过期?

windows 7怎么设置密码永不过期?

下面小编以Windows 7 64位为例,介绍下密码是如何设置永不过期的。  1、在桌面上打开“开始”菜单,或者点击“Win+R”快捷键将“运行”对话框打开。  2、运行对话框打开后,在里面中输入“lusrmgr.msc”字符命令,就可以打开“本地用户和组程序”。...

Ubuntu 14.04安装Wine以便使用Windows应用

Ubuntu 14.04安装Wine以便使用Windows应用

假如你想要在Ubuntu上使用Windows应用,就需要用到Wine了,除了支持Linux系统外,Wine还可运行于其他系统,是个非常使用的软件,下面小编就以Ubuntu 14.04为例,给大家介绍下Ubuntu 14.04安装Wine的步骤。 Ubuntu 14.04安装Wine的步骤 1...

windows 7通过禁用nvcpl服务项减少开机时间提高开机速度

windows 7通过禁用nvcpl服务项减少开机时间提高开机速度

电脑开机速度不够快?如何才能加快电脑开机速度呢?今天小编就教大家一个通过禁止nvcpl服务项加快Windows 7电脑开机速度的方法。 解决方法: 1、首先按“WIN+R”组合键打开Windows 7系统的“运行”窗口,输入“services.msc”命令后按回车。 2、在打开的服务窗口中...

怎么找出藏在windows 7中的Windows Mail

怎么找出藏在windows 7中的Windows Mail

有一个方法很简单,只需4个小步骤就可以找出藏在Windows 7中的Windows Mail。原先有很多朋友都以为Windows Mail在Windows 7中已经被抹杀掉了,其实不然,它只是被隐藏起来了。假如你想恢复Windows Mail邮件客户端,只要将Vista中的msoe.dll文件覆盖W...