仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 474|回复: 11
打印 上一主题 下一主题

[学习教程] JAVA网页编程之Servlet 和 XML:互为增补(一)(转)...

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:26:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ruby里有这些工具吗?又要简单多少?我没有用过这两门语言,我估计在这些语言力没有很统一的这种标准,或者根本就没有提供。servlet|xmlDownloaditnow![/TR]PDF(79.4KB)
FreeAcrobat™Reader-->
Servlet和XML:互为增补
DougTidwell
developerWorks人员
2000年4月
内容:我们的第一个servlet示例一个基础的servlet天生XML段与数据库对接小结参考材料作者简介
研讨Javaservlet和XML怎样配合天生XML文档和DOM树,和它们怎样与数据库对接。本文包含几项有效的手艺:利用HTTP参数把持DOM树的处置与天生,而无需XML源文档。

对Java程序员来讲,Servlet和XML是最使人奋发的两项手艺。本文是为2000年2月17日旧金山CityJava用户组筹办的演示文稿。在本文中您将看到怎样利用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所示。Color-codingourcolorfulcoding-->
黑色编码
黑色编码清单是本文的一个特征,我们正在dW举行实验。为了天生我们的黑色编码清单,我正在利用一些开放源代码的工具。起首,我将文档(Java、HTML、XML等)载进Emacs中。Emacs界说了关头字、正文、函数名和其他编程言语构件(约莫有十多种)的色彩。在Emacs载进文件并为其加上色彩今后,我利用HTMLize程序包,这是一种用已经盛行的EmacsLisp言语编写的开放源代码有用工具。HTMLize吸收一个清单(这个清单看起来与在Emacs中完整一样),然后将其转换为HTML。了局将是一个完整黑色编码的文件,它凸起显现关头字、正文、函数名等。
请告拆我们您对这些新的、改善的代码清单的设法。
假如您也想如许做,请参阅参考材料中的响应链接。
清单1.xmlfromscratch.java
  1. publicclassxmlfromscratchextendsHttpServlet{publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletException{response.setContentType("text/xml");PrintWriterout=response.getWriter();out.println("<?xmlversion="1.0"?>");out.println("<greetinglanguage="en_US">");out.println("Hello,World!");out.println("</greeting>");}}
复制代码
这一段使人镇静的代码天生的了局以下所示:
清单2.xmlfromscratch.java的了局
  1. <?xmlversion="1.0"?><greeting>Hello,World!</greeting>
复制代码
您能够检察完全清单的HTML视图或间接检察Java源文件。
天生XML段
如今,我们已创立了一个servlet,它经由过程硬编码天生一个没成心义的复杂XML文档。鄙人一个servlet中,我们从零入手下手天生一个DOM树,然后将DOM树的一部分显现在哀求者的屏幕上。向哀求者发送回的DOM树部分取决于servlet吸收到的HTTP参数。本例展现了几项有效的手艺:利用HTTP参数把持DOM树的处置与天生,而无需XML源文档。
清单3显现了处置HTTP参数的代码段:
清单3.xmlfromdom.java
  1. publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException,ServletException{response.setContentType("text/xml");PrintWriterout=response.getWriter();Enumerationkeys;Stringkey;StringrequestedSubtree="";keys=request.getParameterNames();while(keys.hasMoreElements()){key=(String)keys.nextElement();if(key.equalsIgnoreCase("subtree"))requestedSubtree=request.getParameter(key);}
复制代码
正如在上一个示例中那样,我们将内容范例设置为text/xml。在此以后,我们利用HttpServletRequest.getParameterNames办法从HTTP哀求中检索一切参数。
在处置完这些参数今后,我们必要查找用户所哀求的信息。我们利用的信息从对象中构建DOM树;该DOM树包括了莎士比亚十四行诗的文本,和关于这首十四行诗的其他信息。我们将依据HTTPsubtree参数前往DOM树的一部分。清单4显现了构建DOM树的部分代码:
清单4.构建DOM树
  1. Documentdoc=null;Elementauthor=null;Elementlines=null;Elementtitle=null;publicvoidinitialize(){doc=(Document)Class.forName("org.apache.xerces.dom.DocumentImpl").newInstance();if(doc!=null){Elementroot=doc.createElement("sonnet");root.setAttribute("type","Shakespearean");author=doc.createElement("author");ElementlastName=doc.createElement("last-name");lastName.appendChild(doc.createTextNode("Shakespeare"));author.appendChild(lastName);
复制代码
我们创立了一个Java类的实例,该类完成了DOMDocument接口,然后我们请求谁人节点为我们创立各类节点。您很简单从头编写这个使用程序,使它经由过程剖析XML文件天生DOM树。为了简化这个示例(并削减我的事情量),我们界说了一些实例变量来保留筹办为其供应服务的节点的值。这些值在类声明顶部声明,并在initialize办法中初始化。
最初一步是将被哀求的DOM树部分发送给用户。为了完成这一义务,我们利用一个递回办法,printDOMTree,它处置节点及其一切子节点。由于这个办法是递回的,以是我们从文档根节点仍是从DOM树的其他节点入手下手其实不主要。假如所哀求的是我们晓得的一个节点,则能够将这个节点传送给办法printDOMTree。不然,我们能够传送Document节点。清单5显现了这一步骤。

不得不提一下的是:.net是看到java红,而开发出来的工具。
若相依 该用户已被删除
沙发
发表于 2015-1-19 06:40:53 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
不帅 该用户已被删除
板凳
发表于 2015-1-24 10:37:16 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
冷月葬花魂 该用户已被删除
地板
发表于 2015-1-28 17:57:41 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
透明 该用户已被删除
5#
发表于 2015-2-1 19:14:49 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
乐观 该用户已被删除
6#
发表于 2015-2-7 21:12:02 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
再现理想 该用户已被删除
7#
发表于 2015-2-8 08:12:26 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
因胸联盟 该用户已被删除
8#
发表于 2015-2-25 01:56:50 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
若天明 该用户已被删除
9#
发表于 2015-3-5 17:28:27 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
再见西城 该用户已被删除
10#
发表于 2015-3-12 11:01:03 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
分手快乐 该用户已被删除
11#
发表于 2015-3-19 20:53:58 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
小女巫 该用户已被删除
12#
发表于 2015-4-1 17:52:44 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 18:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表