转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
用 Tomcat 和 MySQL 生成动态内容         ★★★★

用 Tomcat 和 MySQL 生成动态内容

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1958 更新时间:2009/4/22 20:48:55
ndler 类连接到数据库更加熟悉。

字段
BannerServlet 使用五个字段:

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

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

Logger _logger:Logger 类的名称,用此类来记录我们应用程序中发生的所有事件。

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 的行为,第二部分处理链接请求。

最后,我们看一下从客户机发送来的 type 参数。如果 type 的值是 image,那么我们从数据库获取一个随机的 Banner 对象,将该 Banner 对象添加到用户的会话,同时增加这一给定横幅的已显示次数,并将用户路由至 Banner 对象的图像字段中所引用的图像。

如果 type 的值是 link,那么我们从会话中除去 Banner 对象,减少该横幅的剩余点击次数,并将用户重定向至 Banner 对象的 URL 字段中指定的链接。

其它方法
getRandomBanner()、increaseImpressions() 和 decreaseClicksRemaining() 都是助手方法,从 service 方法中调用它们。getRandomBanner() 使用一个简单的算法从 _banners HashMap 随机地选择一个横幅。increaseImpressions() 和 decreaseClicksRemaining() 使用 DBHandler 连接到数据库并更新给定 Banner 的信息。在这两个方法的结束部分,我们调用 init() 方法将已更新的 Banner 信息重新装入到 HashMap。

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

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

上一页  [1] [2] 


[MySql]PHP存取 Mysql 数据乱码终极解决方案  [MySql]解决Table xxx is marked as crashed and should …
[MySql][MySQL]快速解决"is marked as crashed and shoul…  [MySql]MySQL DELETE语法用法详解
[MySql]mysql中时间日期格式化  [MySql]修改mysql导入文件大小限制
[其他]MySql常用命令大全  [Web开发]把ACCESS的数据导入到Mysql中的方法详解
[MySql]解决mysql 1040错误Too many connections的方法  [办公软件]RIGHT函数和逻辑与&和Value函数在Excel中的应用举…
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台