对 Java 程序员来说,Servlet 和 XML 是最令人振奋的两项技术。本文是为 2000 年 2 月 17 日旧金山 City Java 用户组准备的演示文稿。在本文中您将看到如何使用 servlet 组成一个简单的 XML 文档,构建一个 DOM 树,并将部分内容显示在用户屏幕上,最后您将看到如何从一个数据库查询生成 XML。
对于本文讨论的示例来说,我们将扩展 HTTPServlet
类。HTTPServlet
类提供了通常与 CGI 程序相关的功能。它支持 put
和 get
,并且使您的代码具有对 HTTP 请求标头的完全访问权,包括 UserAgent
域。我们将创建一些简单的 servlet,并说明它们如何处理以 XML 标签标记的信息。在这一过程中我们还将说明文档对象模型 (DOM) 的一些方法。这些简单的应用程序将使您了解当将 servlet 和 XML 组合在一起时您能够做哪些事情。
第一个 servlet 示例
作为开始,我们将编写一个用来生成 XML 文档的 10 行 servlet。在构建理解 XML 的 servlet 时,我们将按以下三个步骤进行:
- 将内容类型设为
text/xml
。 - 创建 XML 文档。
- 将 XML 文档写回客户机。
在我们的大多数 Servlet 中,主要精力放在第二步。我们可能根据数据库查询创建一个 XML 文档,也可能基于从客户传送来的 HTTP 参数生成它,或者也可能使用其他类型的数据检索或生成方法。在本文的示例中,将主要考虑 HTTP 参数和数据库查询。
一个基本的 servlet
对于第一个示例,第二步“创建 XML 文档”不是我们所关心的;我们只想生成一个有效的 XML 文档。我们已将文档硬编码到源代码中,如清单 1 所示。
彩色编码 请告拆我们您对这些新的、改进的代码清单的想法。 如果您也想这样做,请参阅 |
清单 1. xmlfromscratch.java
public class xmlfromscratch extends HttpServlet { public void service(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/xml"); PrintWriter out = response.getWriter(); out.println("<?xml version=/"1.0/"?>"); out.println("<greeting language=/"en_US/">"); out.println(" Hello, World!"); out.println("</greeting>"); } } |
这一段令人兴奋的代码生成的结果如下所示:
清单 2. xmlfromscratch.java 的结果
<?xml version="1.0 |