手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Mysql>列表

用Tomcat和MySQL生成动态内容

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
20 NUMBEROFIMPRESSIONS 0 0 0 0 BANNERWEIGHT 10 10 30 10

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

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

横幅体系结构

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

  • 通用的 Logger 类,一个将日志消息写到文本文档的类。

  • 名为 BannerServlet 的 servlet,每次显示横幅图像(即每次装入页面)和每次点击横幅图像时,将调用他。该 servlet 是我们应用程式的核心。

  • 通用的 DBHandler 类, BannerServlet 将用他和 MySQL 数据库进行通信。

  • Banner 类,我们用他来创建对象,这些对象包含数据库中每个横幅所拥有的任何元数据。

BannerServlet 类和 Banner 类特定于我们的应用程式。他们相当简单,您能够方便地扩展他们来添加更复杂的特性。

DBHandlerLogger 类的好处在于:您能够在任何您实际编写的、需要和数据库通信或写入日志文档的应用程式中重用这两个类。

我们将更周详地讨论任何这四个类,这样您就能够理解 servlet 是如何工作的,连同他如何使用 DBHandler 和 MySQL 数据库通信。

Logger 类

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

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

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

DBHandler 类

DBHandler 是很多用途的类,可用来通过 JDBC 和几乎任何数据库进行相互操作。他需要一个具备 JDBC/ODBC 驱动程式(我们正用此驱动程式来连接到数据库)名称的字符串、一个具备数据库(我们为其配置了 DSN)名称的字符串和一个 Logger 参数。 Logger 参数在 DBHandler 完成其“神奇”任务时告诉他在哪里打印输出消息。 DBHandler 的构造器打开到数据库的连接。在使用 DBHandler 完成任务后,必须用 close() 方法关闭他。

在创建了 DBHandler 对象之后,必须创建查询来执行。使用 setQueryString() 方法传入包含查询的字符串,查询能够是 PreparedStatement 类的形式。

PreparedStatement 是 JDBC 的一个很好的功能。他允许您定义一个查询字符串,使用问号字符替代查询中的变量标准。随后能够使用 PreparedStatement 类的 setter 方法来配置查询中未知元素的值。幸运的是, DBHandler 类为我们处理任何这些事情。我们只需配置想要执行的查询,然后调用 DBHandler 的某个方法,如下所示:



public Banner getBannerByName(String name) {

        ...

        ...

        dbHandler.setQueryString("SELECT * FROM ADS WHERE NAME=?");

        ResultSet rs = dbHandler.lookup(name);

        dbHandler.close();

        ...

        ...

}

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!