仓酷云

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

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

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

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

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

x
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......servlet|xml清单5.printDOMTree
  1. if(requestedSubtree.equalsIgnoreCase("author"))printDOMTree(author,out);elseif(requestedSubtree.equalsIgnoreCase("lines"))printDOMTree(lines,out);elseif(requestedSubtree.equalsIgnoreCase("title"))printDOMTree(title,out);elseprintDOMTree(doc,out);
复制代码
假如subtree参数是author,则了局是:
  1. <author><last-name>Shakespeare</last-name><first-name>William</first-name><nationality>British</nationality><year-of-birth>1564</year-of-birth><year-of-death>1616</year-of-death></author>
复制代码
假如subtree参数是title,则了局是:
  1. <title>Sonnet130</title>
复制代码
您能够检察完全清单的HTML视图或间接检察Java源文件。
与数据库对接
我们的最初一个示例是依据数据库查询天生XML。有很多办法可做到这一点(请参阅developerWorks的文章GeneratingXMLfromaDataStore);关于本例而言,我们将利用IBM的XMLExtenderforDB2(请参阅参考材料)。这个收费产物使您可以在DB2中存储XML文档。我们的查询从DB2中提取这些文档,然后将其传送给用户。
假如您利用Oracle8i取代DB2,您将会发明它自称具有相似的功效(请参阅参考材料)。关于不睬解XML的数据库,您能够将XML文档存储为字符年夜对象(CLOB),并以文本块的体例检索文档。
可是,在安装数据库今后,您必要完成以下三件事变才干使此代码事情:

  • 起首,将DbOwner、DbUserid和DbPasswd变量改成合适体系的得当值。
    1. ///////////////////////////////////////////////////////////////////必定要准确变动这三个字符串,不然////servlet不会事情。///////////////////////////////////////////////////////////////////DbUserid="xxxxxxxx";DbPasswd="xxxxxxxx";DbOwner="xxxxxxxx";
    复制代码
  • 下一步,利用合适您的体系的JDBC驱动程序。我们在利用DB2。
    1. staticStringJDBCDriver="COM.ibm.db2.jdbc.app.DB2Driver";...try{Class.forName("COM.ibm.db2.jdbc.app.DB2Driver").newInstance();}catch(Exceptione){System.out.println("Cantgetthedriver!");e.printStackTrace();}
    复制代码
  • 假如你乐意,能够改失落上面的SQL查询语句。为了简化示例,此处仅检索sales_order_view表的order列中的全体XML文档。
    1. //我们在此处对SQL语句举行硬编码;假如依据用户输出//限定查询,则情形会更加庞大。Stringquery="selectorderfrom"+DbOwner+".sales_order_view";
    复制代码

在service办法中,我们的servlet毗连DB2,实行一个查询(其了局为一组XML文档),剖析查询了局,并将剖析过的数据写进输入流中。清单6显现了与此干系最亲切的代码部分:
清单6.xmlfromdb2.java
  1. //我们在此处对SQL语句举行硬编码;假如依据用户输出//限定查询,则情形会更加庞大。Stringquery="selectorderfrom"+DbOwner+".sales_order_view";res.setContentType("text/xml");try{ConInfoindex=newConInfo();Connectioncon=getCon(index);Statementstmt=con.createStatement();ResultSetrs=stmt.executeQuery(query);...//显现了局集。我们从每行掏出XML文档,//对其举行剖析,然后打印DOM树。当没有更多的行时,rs.next()前往//false。while(rs.next()){StringnextOrder=rs.getString(1).trim();Documentdoc=null;StringReadersr=newStringReader(nextOrder);InputSourceiSrc=newInputSource(sr);try{parser.parse(iSrc);doc=parser.getDocument();}catch(Exceptione){System.err.println("Sorry,anerroroccurred:"+e);}if(doc!=null)printDOMTree(doc,out);}
复制代码
要懂得全体细节,您能够检察完全清单的HTML视图或间接检察Java源文件。
小结
只管这些servlet示例中没有一个能够改动天下,但它们的确展现了XML和servlet共同得有何等好。Servlet是向客户发送内容的一种巨大机制,而XML是发送布局化数据的一种完善机制。您还可使用servlet处置服务器上的XML文档,并将它们的内容发送给客户机。最主要的是,这两种手艺都是跨平台手艺,可为您的使用程序带来更年夜的天真性和可移值性。
参考材料

  • 懂得有关DB2XMLExtender的具体信息。产物附带的文档中有一个深切的教程,它可匡助您将XML文档带进干系数据库的天下中。
  • 懂得有关Oracle数据库产物的具体信息。
  • 试用WebSphere附带的收费servlet教程。
  • 经由过程developerWorks的XMLprogramminginJava教程深切研讨怎样剖析XML文件。
  • 下载作者为CityJava用户组制造的演示文稿的PDF版本。
  • 在www.gnu.org网站进修利用Emacs黑色编码代码清单。HTMLize程序包可从网址jagor.srce.hr取得。

进而能拉拢大多数程序员用windows产品。并且从ASP.NETAJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net的,如果跨平台的.net还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-21 06:18:23 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
兰色精灵 该用户已被删除
板凳
发表于 2015-1-22 15:37:16 | 只看该作者
是一种为 Internet发展的计算机语言
活着的死人 该用户已被删除
地板
发表于 2015-1-23 08:10:31 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
5#
发表于 2015-1-25 23:42:16 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
变相怪杰 该用户已被删除
6#
发表于 2015-1-26 22:09:07 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
乐观 该用户已被删除
7#
发表于 2015-2-4 20:54:08 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
再现理想 该用户已被删除
8#
发表于 2015-2-10 09:17:25 | 只看该作者
是一种使用者不需花费很多时间学习的语言
第二个灵魂 该用户已被删除
9#
发表于 2015-2-26 19:22:49 | 只看该作者
是一种使用者不需花费很多时间学习的语言
海妖 该用户已被删除
10#
发表于 2015-3-8 16:41:43 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
柔情似水 该用户已被删除
11#
发表于 2015-3-10 15:52:39 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
飘灵儿 该用户已被删除
12#
发表于 2015-3-17 08:10:31 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
山那边是海 该用户已被删除
13#
发表于 2015-3-24 02:50:35 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-15 05:26

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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