仓酷云

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

[学习教程] JAVA网页设计用Applet读写XML设置文件

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

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

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

x
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。xml此小程序用DOM来读取XML文件,用DOM4j来写XML文件。
DOM4j下载地点:http://sourceforge.net/projects/dom4j
1、Applet主程序mainFrame.java

packageframe;

/**
*@authorwls

*/
importjava.applet.*;

importjava.awt.*;
importjava.awt.event.*;

publicclassmainFrame
extendsApplet{
DomXmldomxml=newDomXml();
ButtonbtnExit=newButton("Exit");
ButtonbtnRun=newButton("Save");
LabellblMain=newLabel("dynamicroute.xml设置文件");
LabellblSiteinfo=newLabel("srcserverid:");
LabellblPath=newLabel("destserverid:");
LabellblFilename=newLabel("switchserver:");
LabellblSession=newLabel("metric:");
LabellblSuccess=newLabel("");

TextFieldtxtSiteinfo=newTextField(domxml.getSrcserverid(),10);
TextFieldtxtPath=newTextField(domxml.getDestserverid(),10);
TextFieldtxtFilename=newTextField(domxml.getSwitchserver(),10);
TextFieldtxtSession=newTextField(domxml.getMetric(),10);

Panelp6=newPanel();
Panelp1=newPanel();
Panelp2=newPanel();
Panelp3=newPanel();
Panelp4=newPanel();
Panelp5=newPanel();
Panelp7=newPanel();
Panelp8=newPanel();
publicvoidinit(){
resize(400,300);
p6.add(lblMain);
p1.add(lblSiteinfo);
p1.add(txtSiteinfo);
p2.add(lblPath);
p2.add(txtPath);
p3.add(lblSession);
p3.add(txtSession);
p4.add(btnRun);
p4.add(btnExit);
p5.add(lblFilename);
p5.add(txtFilename);
p8.add(lblSuccess);
setLayout(newGridLayout(4,2,1,1));
add(p6);
add(p7);
add(p1);
add(p2);
add(p5);
add(p3);
add(p4);
add(p8);
}

publicbooleanaction(Eventevt,Objectobj){
if(evt.targetinstanceofButton){
StringbtnName=(String)obj;
if(btnName.equals("Save")){
try{
domxml.setSrcserverid(txtSiteinfo.getText());
domxml.setDestserverid(txtPath.getText());
domxml.setSwitchserver(txtFilename.getText());
domxml.setMetric(txtSession.getText());
buildXmlbuildxml=newbuildXml();
if(buildxml.createXMLFile("dynamicroute.xml",domxml)==1&&
buildxml.formatXMLFile("dynamicroute.xml")==1){
lblSuccess.setText("Savesuccess!");
System.out.println("Savesuccess!");
}
}
catch(Exceptione){
e.printStackTrace();
}
}
elseif(btnName.equals("Exit")){
System.exit(0);
}
}
returnsuper.action(evt,obj);
}

publicstaticvoidmain(Stringargs[]){
newFrameDownload(newmainFrame());
}
}

classFrameDownload
extendsFrame{
publicFrameDownload(Appletapplet){
setSize(400,300);
add("Center",applet);
applet.init();
setVisible(true);
this.addWindowListener(newcloseWindows());
}
}

classcloseWindows
extendsWindowAdapter{
publicvoidwindowClosing(WindowEvente){
Framefrm=(Frame)(e.getSource());
frm.dispose();
System.exit(0);
}
}

2、读取XML类DomXml.java

packageframe;

importjavax.xml.parsers.*;
importorg.w3c.dom.*;

/*
*Createdon2004-8-19
*@authorwls
*java读取XML文档
*使用DoM来读取一个XML文档的内容
*
*/

publicclassDomXml{
privateStringsrcserverid;
privateStringdestserverid;
privateStringswitchserver;
privateStringmetric;
publicDomXml(){
try{
initXml("dynamicroute.xml");
}
catch(Exceptionex){
metric="0";
}
}

publicStringgetSrcserverid(){
returnsrcserverid;
}

publicvoidsetSrcserverid(Stringsrcserverid){
this.srcserverid=srcserverid;
}

publicStringgetDestserverid(){
returndestserverid;
}

publicvoidsetDestserverid(Stringdestserverid){
this.destserverid=destserverid;
}

publicStringgetSwitchserver(){
returnswitchserver;
}

publicvoidsetSwitchserver(Stringswitchserver){
this.switchserver=switchserver;
}

publicStringgetMetric(){
returnmetric;
}

publicvoidsetMetric(Stringmetric){
this.metric=metric;
}

publicvoidinitXml(StringfileName)throwsException{
DocumentBuilderFactoryfactory=DocumentBuilderFactory.newInstance();
DocumentBuilderbulider=factory.newDocumentBuilder();
Documentdoc=bulider.parse(fileName);
NodeListnl=doc.getElementsByTagName("dynamicroute");

for(inti=0;i<nl.getLength();i++){

Elementnode=(Element)nl.item(i);
srcserverid=node.getElementsByTagName("srcserverid").item(0).
getFirstChild().getNodeValue().trim();
destserverid=node.getElementsByTagName("destserverid").item(0).
getFirstChild().getNodeValue().trim();
switchserver=node.getElementsByTagName("serverid").item(0).
getFirstChild().getNodeValue().trim();
metric=node.getElementsByTagName("metric").item(0).getFirstChild().
getNodeValue().trim();
}
}

}

3、写XML文件类buildXml.java
packageframe;

importjava.io.*;

importorg.dom4j.*;
importorg.dom4j.io.*;

/**
*@authorwls

*/

publicclassbuildXml{

publicbuildXml(){

}

/**
*创建一个XML文档,文档名由输出参数决意

*@paramfilename需创建的文件名

*@return前往操纵了局,0表失利,1表乐成

*/

publicintcreateXMLFile(Stringfilename,DomXmldomxml){

/**前往操纵了局,0表失利,1表乐成*/

intreturnValue=0;

/**创建document对象*/
Documentdocument=DocumentHelper.createDocument();
/**创建XML文档的根route*/
ElementrouteElement=document.addElement("route");
/**到场第一个dynamicroute节点*/
ElementdynamicrouteElement=routeElement.addElement("dynamicroute");
/**到场show参数内容*/
//bookElement.addAttribute("show","yes");
/**到场节点*/
ElementsrcserveridElement=dynamicrouteElement.addElement("srcserverid");
ElementdestserveridElement=dynamicrouteElement.addElement("destserverid");
ElementswitchserverElement=dynamicrouteElement.addElement("switchserver");
ElementserveridElement=switchserverElement.addElement("serverid");
ElementmetricElement=dynamicrouteElement.addElement("metric");
/**为title设置内容*/
srcserveridElement.setText(domxml.getSrcserverid());
destserveridElement.setText(domxml.getDestserverid());
serveridElement.setText(domxml.getSwitchserver());
metricElement.setText(domxml.getMetric());
try{
/**将document中的内容写进文件中*/
XMLWriterwriter=newXMLWriter(newFileWriter(newFile(filename)));
writer.write(document);
writer.close();
/**实行乐成,需前往1*/
returnValue=1;
}
catch(Exceptionex){
ex.printStackTrace();
}
returnreturnValue;
}

/**
*格局化XML文档,并办理中文成绩

*@paramfilename

*@return

*/

publicintformatXMLFile(Stringfilename){

intreturnValue=0;

try{

SAXReadersaxReader=newSAXReader();

Documentdocument=saxReader.read(newFile(filename));

XMLWriteroutput=null;

/**格局化输入,范例IE扫瞄一样*/

OutputFormatformat=OutputFormat.createPrettyPrint();

/**指定XML字符集编码*/

format.setEncoding("UTF-8");

output=newXMLWriter(newFileWriter(newFile(filename)),format);

output.write(document);

output.close();

/**实行乐成,需前往1*/

returnValue=1;

}
catch(Exceptionex){

ex.printStackTrace();

}

returnreturnValue;

}

}




但是我同意你的观点,对于大型项目来说,应该是采用框架的一部分,根据功能的不同而改进,欢迎你能再提出些宝贵意见,我会多多学习的。说到jbuilder,我可能是个人感觉,用的时候确实没有vs爽,我最喜欢的IDE是netbeans,谢谢。
只想知道 该用户已被删除
沙发
发表于 2015-1-21 11:07:36 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
柔情似水 该用户已被删除
板凳
发表于 2015-1-24 14:13:11 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
若相依 该用户已被删除
地板
发表于 2015-1-25 21:52:37 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
金色的骷髅 该用户已被删除
5#
发表于 2015-2-3 12:57:36 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
第二个灵魂 该用户已被删除
6#
发表于 2015-2-7 17:46:33 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
admin 该用户已被删除
7#
发表于 2015-2-11 21:17:11 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
兰色精灵 该用户已被删除
8#
发表于 2015-2-16 07:21:27 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
飘灵儿 该用户已被删除
9#
发表于 2015-2-17 09:47:12 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
小魔女 该用户已被删除
10#
发表于 2015-3-5 19:08:34 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
因胸联盟 该用户已被删除
11#
发表于 2015-3-7 04:52:35 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
老尸 该用户已被删除
12#
发表于 2015-3-14 10:33:29 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
若天明 该用户已被删除
13#
发表于 2015-3-20 20:36:48 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
分手快乐 该用户已被删除
14#
发表于 2015-3-24 06:29:17 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
精灵巫婆 该用户已被删除
15#
 楼主| 发表于 2015-3-25 04:56:24 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
不帅 该用户已被删除
16#
发表于 2015-3-27 22:10:51 | 只看该作者
是一种为 Internet发展的计算机语言
爱飞 该用户已被删除
17#
发表于 2015-3-28 16:25:13 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
乐观 该用户已被删除
18#
发表于 2015-4-2 23:16:59 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
变相怪杰 该用户已被删除
19#
发表于 2015-4-6 23:46:04 | 只看该作者
是一种使用者不需花费很多时间学习的语言
冷月葬花魂 该用户已被删除
20#
发表于 2015-4-16 21:09:30 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-23 05:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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