文章作者 100test 发表时间 2007:03:26 18:01:24
来源 100Test.Com百考试题网
2、BannerServlet.java中有两处要改动:
dbHandler.setQueryString("UPDATE ADS SET NUMBEROFIMPRESSIONS = [NUMBEROFIMPRESSIONS] 1 WHERE IMAGEFILE = ?").
改为:
dbHandler.setQueryString("UPDATE ADS SET NUMBEROFIMPRESSIONS = NUMBEROFIMPRESSIONS 1 WHERE IMAGEFILE = ?").
dbHandler.setQueryString("UPDATE ADS SET NUMBEROFCLICKSREMAINING = [NUMBEROFCLICKSREMAINING]-1 WHERE IMAGEFILE=?").
改为:
dbHandler.setQueryString("UPDATE ADS SET NUMBEROFCLICKSREMAINING = NUMBEROFCLICKSREMAINING-1 WHERE IMAGEFILE=?").
象 doubleclick.net 这样的公司依靠在 Web 上提供横幅广告服务已经赚了很多钱。他们提供的服务很棒,但为什么要为自己本来可以做的事情而付钱呢?在本文中,企业 Java 顾问 Javid Jamae 和 Kulvir Bhogal 将演示如何使用全开放源码环境:Apache Tomcat、MySQL 和 MySQL JDBC 驱动程序,来创建滚动横幅广告。首先,他们将向您逐步介绍必需的 Tomcat 和 MySQL 安装,然后向您演示如何安装 MySQL JDBC 驱动程序以允许运行在 Tomcat 中的 Java servlet 与 MySQL 进行通信。
当因特网开始从教育和政府信息存储器转变成国际商业中心起,横幅广告就已经出现了。滚动横幅是 Web 页面上一块已分配的空间,每次装入或重新装入 Web 页面时,就用该空间内来显示广告 — 随机显示或基于某些业务逻辑来显示。驱动滚动横幅广告的程序虽然相当简单,但却是重要的广告工具。正如它们的同类,如半分钟广播和电视广告一样,这些动态广告工具允许单个 Web 页面显示不同来源的广告,并使不同公司针对相同的观众建立他们产品和服务的品牌效应。
无论您怎么看待 Web 横幅广告(是的,我们都发现它们有时令人讨厌),它们已成为因特网上的一种生活方式。存在这样的事实:Web 的观众由庞大的消费者群体所组成,他们的金钱使电子商务的车轮得以转动。在因特网市场营销的短暂历史中,电子商务所有者已表现出他们愿意花大把的钱在热门站点上做横幅广告。
有些公司(如 doubleclick.net)已经通过担当应用程序服务供应商(ASP),提供诸如跟踪对特定横幅广告的点击之类的服务,从 Web 横幅现象中获利。随后这些 ASP 告诉广告客户他们的 Web 广告活动的有效程度。
当然,象 doubleclick.net 这样的 ASP 是要收费的。如果您和我们一样,那么您不会愿意在能够免费得到服务时还要花钱。稍等一会儿 — 您可能已经听过世上没有免费的午餐这句话。不过别担心。本文将花费的只是您的时间。事实上,我们将向您演示如何组成一个开放源码(即免费)环境来建立您自己的功能强大的 Web 横幅跟踪系统。为了完成这一任务,我们挑选的“武器”是 Tomcat、MySQL、一个 Java servlet 和几个助手类。兴奋吗?那么,让我们进行软件安装吧。
安装 Tomcat 和 MySQL
在这一节中,我们将逐步介绍 Tomcat 和 MySQL 的安装。然后,我们将向您介绍如何安装支持这两个应用程序相互通信所需的驱动程序。
安装 Tomcat
下载并安装 Tomcat。对于本文,使用Tomcat 5.5 Windows 版,它有一个很好的安装软件包,安装应该非常简单,但如果您遇到麻烦,请查阅 Tomcat 文档。因为 Tomcat 非常流行,所以在新闻组和 Web 上也可找到大量的帮助。
安装了 Tomcat 之后,还要完成几个步骤以设置我们的滚动横幅 Web 应用程序。首先,我们将在 [installdir]\webapps
目录下创建一个名为 banner
的子目录。然后在 banner
子目录下,创建标准的 Web 应用程序目录结构:
|
接下来,我们将添加指向我们 Web 应用程序的 context。context 只是一个别名,它告诉 Tomcat 在哪里可以访问 Web 应用程序。我们的 context 路径将是 /banner
,它将指向我们刚刚创建的 banner
子目录。在用户输入 http://localhost:8080/banner
后,将转至 webapps
下的顶级 banner 目录。如果他想运行我们的 BannerServlet
(将存在于 WEB-INF/classes
目录中),他可以使用 http://localhost:8080/banner/BannerServlet
。
要添加 /banner
context,首先,我们需要编辑 Tomcat conf
目录中的 server.xml 文件。 在
|
添加了 context 标记之后,重新启动 Tomcat 以使对 server.xml 文件所做的更改生效.
安装 MySQL
MySQL 因其价格(免费)而成为一种强有力的数据库,许多公司都使用 MySQL 来处理它们的数据。由于许多公司都想以较低的预算进入 Web 市场,所以使用 MySQL 的公司的数量每天都在增加。开放源码社区已张开双臂欢迎 MySQL。有关这个功能强大的数据库的文档十分丰富,而且同时有 Linux 和 Windows 版本。
下载并安装 MySQL(站长下载了mysq 5.0.28 )
使 MySQL 和 Tomcat 共同工作
使 MySQL 和 Tomcat 相互通信可能有些困难。然而,通过使用 JDBC API,我们将能够相对容易地从 Java 类使用 SQL 与 MySQL 数据库通信。
首先,要从这里下载驱动程序的合适的 JAR 文件。下载名为mysql-connector-java-5.0.0-beta.zip 的文件。接下来,将文件解压缩(unjar 或 unzip)至一个临时目录。最后,将包含驱动程序的文件从解压缩的目录结构复制到 WEBAPPS/BANNER/WEB-INF/lib
目录中,然后重新启动 Tomcat。在我们下载的驱动程序版本中,文件的名称是mysql-connector-java-5.0.0-beta-bin.jar
我们本可以使用 JDBC/ODBC 桥驱动程序与 MySQL 通信,但我们认为本机驱动程序在性能上有更大优势(尽管我们没有运行任何基准测试程序来证实我们的假设)。对于这个应用程序,在性能上它可能不会有很大区别,但我们决定演示如何使用本机 JDBC 驱动程序,以便您不必在设计较大的应用程序时才去了解它。
滚动横幅应用程序
既然我们已经安装了所有的软件,就让我们来看一下这个应用程序能够做什么以及我们是如何组织其架构和开发它的。
实质上,您可以使用我们的横幅 servlet 执行两个操作。首先,您可以用它查看 Web 页面上的随机横幅图像,每次装入包含横幅广告的 Web 页面时,该随机横幅图像就会出现。其次,您可以点击横幅图像,这将使您转至与装入的这个图像对应的链接。
按照 HTML,其代码类似于:
|
如果希望装入随机图像,那么显然图像标记不能指向静态图像文件,因此我们将指示它运行 servlet,本例中将调用 BannerServlet。我们将使用 HTTP GET
方法参数来指示 servlet 为我们提供图像。因此,图像标记类似于:
|
该标记调用 servlet 并传入参数键值对 type=image
。servlet 的 service()
方法会解释该请求,然后向浏览器返回随机图像。当然,servlet 必须以某种方式记住将哪个图像发送给了客户机,这样当客户机点击该图像时,它就知道应链接至何处。我们会把与发送的图像相关的元数据存储在客户机的会话上,这样,当用户点击图像时,将从他的会话装入元数据,并重新导向至适当的 URL。
链接标记看起来几乎与图像标记相同:
|
当用 type=link
键值对调用 servlet 时,servlet 抓取横幅的元数据并将用户重新路由至适当的 URL。
代码和 CLASSPATH 设置
为了使用与本文一起提供的代码,您必须首先解压缩这个 zip 文件,然后用命令行 javac
编译器或您喜欢的 IDE 编译这些.java
文件。要编译该代码,请设置 CLASSPATH
以包含这两个 JAR 文件(站长注:第二个就行了)。
servlet.jar
(如果它没有和您使用的 JDK 打包在一起) 将已编译的 .class
文件复制到先前创建的 [tomcat_installdir]\webapps\banner\WEB-INF\classes
目录中。必须将作为示例提供的图像文件和 .htm
文件放入 [tomcat_installdir]\webapps\banner
目录。
数据库设置
我们应用程序的数据库部分只是用来持久存储系统中每个横幅的元数据。换句话说,我们实际上并不在数据库中存储图像文件,而只是存储指向每个图像文件的引用。在我们的数据库中,我们将使用七个列来描述每个横幅广告。
表 1 中的描述说明了每条记录将包含的内容。我们实际上将在应用程序中只使用这七个数据库列中的五个。我们的版本中没有使用 CustomerName
和 NumberOfClicksPurchased
,但我们把它们作为占位符放置在这里以用于扩展。您可以很容易地扩展这个应用程序,并把它用于现实的商业应用程序,其中客户为每个横幅的点击次数付款。
相关文章
Tomcat5.5数据库连接池配置
开源技术:tomcat5.0下配置ssl
TOMCAT IIS配置方法
开源技术之Tomcat数据源配置总结
Tomcat Mysql入门实例:滚动横幅广告
Tomcat的数据库连接池设置与应用
HSDPA网络的IubIP传输解决方案
关于XMLBeans/shcema,不得不说的话题
如何实现XML XSL javascript数据排序
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛