开始之前
本教程是为那些希望在应用程序中实现某些形式的浏览器检测 API 的开发人员编写的。您可以使用 Geronimo 作为 Java 2 Platform Enterprise Edition(J2EE)应用服务器(尤其是使用 Jetty 作为 servlet 容器)以及一些客户端的 JavaScript。您将开发几个单独的基于 Java 的组件,包括一个 servlet 过滤器和两个定制 JSP 标记。您将使用 Apache Ant 作为编译工具来构建 .war 文件,它可以部署到 Geronimo 中,因此如果熟悉 Ant 将会有所帮助。您应该熟悉过滤器和 JSP 标记库的概念,并且能够自如地阅读 Java 源代码。
在本教程最后,您应该了解如何开发自己的基本 servlet 过滤器和 JSP 标记库,并且能够使用 Apache Geronimo 应用服务器在 J2EE 程序中实现稳健的浏览器检测 API。
关于本教程
本教程的内容可能会回避一些实质问题,“为什么要利用另外一个浏览器检测工具?”,或者“为什么不使用 BrowserHawk 或市场上的其他产品?”有时在一个产品无法满足您的要求或不容易与应用程序进行集成时,最好 能够从头开发一个工具。另外,很多工具(包括 BrowserHawk)都是专用工具,这并不意味着是件不好的事情;然而,有些开发人员宁愿使用更加开放的工具,这样他们就可以很容易对这些工具进行调整来满足自己的特殊需求了。Geronimo 就是一个很好的例子。Apache 软件基金会希望提供一个完全开放的 J2EE 应用服务器来满足 Java 开发人员社区中尚未满足的一些要求。其原因并不是目前没有很好的 J2EE 应用服务器;而是因为 Apache 希望构建一个开放源码的、经过认证的 J2EE 服务器,它可以由 Java 开发人员社区进行支持。
本教程中使用的技术不但与浏览器和 OS 检测有关;相同的技术也可以用来检测客户机上安装的 Macromedia Flash 版本,或客户机位于哪个国家。有一些开放源码 JavaScript 程序提供了对这些信息的访问,目前用来检测浏览器和 OS 的相同技术也可以使用这些脚本。
本教程的结构如下:
定制 JSP 标记 —— 这是一个回顾 ,简要介绍了有关什么是定制 JSP 标记和标记库的知识,以及如何开发 JSP 标记和标记库。
用来进行浏览器检测的 JavaScript 概要介绍了选择 JavaScript 进行浏览器检测的原因,及其在应用程序中扮演的角色。
设计策略 让您可以大致了解如何设计这个示例应用程序和最终部署到 Geronimo 中的编译结构。
服务器端的组件 详细介绍了所有服务器端的 Java 组件和示例应用程序中的源代码,并将它们结合在一起相互进行交互。
JSP 组件和示例应用 详细介绍了在应用程序中使用的 JSP 组件,并提供了几个介绍如何使用这个应用程序中开发的定制标记的例子。
实验 让您可以从源代码开始编译并构建这个示例程序,并提供了将这个应用程序部署到 Geronimo 中和测试这个应用程序的功能所需要的命令。
前提条件
本教程假设您对 Java Servlet API 和 Java 编程语言有基本的了解。具有 JavaScript 方面的知识也可以。
系统需要
要运行本教程中的样例代码,您需要执行以下步骤:
下载并安装下面的应用程序:
Geronimo Milestone 4 或更新的版本。
Apache ANT 1.6.5。
J2SE 1.4.2_09。
确保表 1 中归纳的环境变量都已经在 shell 中定义了。
变量名 | 需要的设置 |
GERONIMO_HOME | 设置为安装 Geronimo 的根目录 |
ANT_HOME | 设置为安装 Ant 的根目录 |
JAVA_HOME | 设置为安装 Java 的根目录 |
PROJECT_HOME | 设置为 BrowserDetection 应用程序的根目录 |
PATH | 确保 ANT_HOME/bin 已经在您的 PATH中 |