莫相离 发表于 2015-1-18 11:26:11

JAVA编程:Servlet 和 XML:互为增补(二)(转)...

微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......servlet|xml清单5.printDOMTreeif(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,则了局是:<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,则了局是:<title>Sonnet130</title>
您能够检察完全清单的HTML视图或间接检察Java源文件。
与数据库对接
我们的最初一个示例是依据数据库查询天生XML。有很多办法可做到这一点(请参阅developerWorks的文章GeneratingXMLfromaDataStore);关于本例而言,我们将利用IBM的XMLExtenderforDB2(请参阅参考材料)。这个收费产物使您可以在DB2中存储XML文档。我们的查询从DB2中提取这些文档,然后将其传送给用户。
假如您利用Oracle8i取代DB2,您将会发明它自称具有相似的功效(请参阅参考材料)。关于不睬解XML的数据库,您能够将XML文档存储为字符年夜对象(CLOB),并以文本块的体例检索文档。
可是,在安装数据库今后,您必要完成以下三件事变才干使此代码事情:
[*]起首,将DbOwner、DbUserid和DbPasswd变量改成合适体系的得当值。
///////////////////////////////////////////////////////////////////必定要准确变动这三个字符串,不然////servlet不会事情。///////////////////////////////////////////////////////////////////DbUserid="xxxxxxxx";DbPasswd="xxxxxxxx";DbOwner="xxxxxxxx";
[*]下一步,利用合适您的体系的JDBC驱动程序。我们在利用DB2。
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文档。
//我们在此处对SQL语句举行硬编码;假如依据用户输出//限定查询,则情形会更加庞大。Stringquery="selectorderfrom"+DbOwner+".sales_order_view";

在service办法中,我们的servlet毗连DB2,实行一个查询(其了局为一组XML文档),剖析查询了局,并将剖析过的数据写进输入流中。清单6显现了与此干系最亲切的代码部分:
清单6.xmlfromdb2.java//我们在此处对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代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

仓酷云 发表于 2015-1-25 23:42:16

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

变相怪杰 发表于 2015-1-26 22:09:07

让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。

乐观 发表于 2015-2-4 20:54:08

Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台

再现理想 发表于 2015-2-10 09:17:25

是一种使用者不需花费很多时间学习的语言

第二个灵魂 发表于 2015-2-26 19:22:49

是一种使用者不需花费很多时间学习的语言

海妖 发表于 2015-3-8 16:41:43

是一种使网页(Web Page)产生生动活泼画面的语言

柔情似水 发表于 2015-3-10 15:52:39

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

飘灵儿 发表于 2015-3-17 08:10:31

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

山那边是海 发表于 2015-3-24 02:50:35

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
页: [1]
查看完整版本: JAVA编程:Servlet 和 XML:互为增补(二)(转)...