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

用Tomcat和MySQL生成动态内容

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

能够使用 lookup() 方法来执行 SELECT 查询,使用 executeUpdate() 方法来执行 UPDATE 查询,连同使用 insert() 方法来执行 INSERT 查询。更有一个 execute() 方法,他无需参数,能够执行任何没有 PrepareStatement 参数的查询。

Banner 类

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

BannerServlet 类

BannerServlet 是我们这个应用程式的核心。我们将把该类分成几个不同部分来向您讲解。通过浏览代码,您将对如何用 DBHandler 类连接到数据库更加熟悉。

字段
BannerServlet 使用五个字段:

  • String _databaseUrl:要访问数据库的名称( jdbc:odbc:\\localhost\BANNER )。

  • String _driverName:用来和数据库通信的驱动程式的名称。正如上面所描述的那样,我们将使用 MM MySQL JDBC 驱动程式。该驱动程式的名称是 org.gjt.mm.mysql.Driver

  • Logger _loggerLogger 类的名称,用此类来记录我们应用程式中发生的任何事件。

  • HashMap _banners:任何 Banner 对象的 HashMap。用 servlet 的 init() 方法填充该 HashMap。将数据库表中的每一行转换成存储在 HashMap 中的一个 Banner 对象。我们过一会儿将周详说明这一点。

  • int _totalWeight:任何 Banner 权重之和。该值也是在 init() 方法中配置的;我们将很快讨论这一点。

init()
任何 servlet 的 init(ServletConfig) 方法都在容器首次装入该 servlet 时被调用。在这里,容器就是 Tomcat。Tomcat 生成并传入 ServletConfig 对象,该对象包含容器配置的缺省配置信息连同研发人员(您)在 servlet 的配置文档中能够进行配置的定制配置信息。对于我们的用途,无需传入任何配置信息,但您有时可能需要扩展 servlet,并使用这一功能。

我们调用 super.init() 之后在 init() 中所做的第一件事是初始化 HashMap 变量 _banners ,并将 _totalWeight 配置为 0。然后,连接到数据库,以 ResultSet 的形式从 ADS 表获取任何行。我们使用 for 循环对 ResultSet 进行循环遍历,从每行构造一个 Banner 对象,接着,把 for 循环的索引作为散列值,将 Banner 对象添加到 HashMap。(我们也能够方便地使用 Vector 或其他一些 Collection 类来完成同样的任务。)

现在,内存中有了一个包含任何 Banner 的 HashMap。假如更新数据库,那么只需调用 init() 方法就可重新装入 HashMap。我们将在 increaseImpressions()decreaseClicksRemaining() 方法中用到这一点。

service()
service() 方法是在我们的 BannerServlet 继承的 HttpServlet 类中定义的,能够处理任何请求,不管他是 GET 方法还是 POST 方法。对于 service() 方法的实现有两个核心部分。第一个部分处理 Web 页面发送图像请求时 servlet 的行为,第二部分处理链接请求。

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