仓酷云

标题: JAVA网页设计简析Java开辟中的XML编程 [打印本页]

作者: 因胸联盟    时间: 2015-1-18 11:37
标题: JAVA网页设计简析Java开辟中的XML编程
市场分额,java比asp高一点,因为C#是仿照java开发的,所以哦C#能做的java都能做到,但是java能做的,C#不一定都能做到。毕竟是抄袭吗。xml|编程XML作为环球通用的布局化言语,愈来愈受人们喜爱,各类开辟平台(好比Microsoft Studio系列、Oracle系列、Inprise Borland系列等)也都把撑持XML开辟作为宣扬标语之一 。因为笔者所处置的电子政务开辟较早的引进了XML,以是尝到了很多长处,在很多项目中使用XML数据互换信息,省往了很多贫苦事,不必制订繁锁的数据格局,使用XML数据易于表达,也利于一线开辟者跟踪调试。 

  在XML使用中,最经常使用也最有用的莫过于XML文件的读写,以是笔者经由过程一个复杂的XML文件读写来作扼要剖析。能够在任何文本编纂器中先创建以下布局的XML文件,相似于HTML布局,但XML语义对照严厉,肇端标志必需配对,好比"〈先生混名册〉"与"〈/先生混名册〉"对应,空格几可不用在乎,但一样平常都以缩格情势誊写,便于浏览。把此文件定名为Input.xml,能够在任何撑持XML的扫瞄器中翻开测试一下,假如输出准确,在扫瞄中能够看到此文件的树形暗示布局。

<?xml version="1.0" encoding="GB2312"?> 
<先生混名册> 
 <先生 性别 = "男"> 
  <姓名>李华</姓名>  
  <岁数>14</岁数> 
  <德律风>6287555</德律风> 
 </先生> 
 <先生 性别 = "男"> 
  <姓名>张三</姓名> 
  <岁数>16</岁数> 
  <德律风>8273425</德律风> 
 </先生> 
</先生混名册>
 
  筹办事情做完后,接着就入手下手写本色性的JAVA代码了。为保留从XML文件读进的信息,必要先建一个复杂的Bean来保留先生信息,定名为StudentBean,代码以下所示: 

public class StudentBean { 
 private String sex; //先生性别 
 private String name; //先生姓名 
 private int age; //先生岁数 
 private String phone; //德律风号码 

 public void setSex(String s) { 
  sex = s; 
 } 
 public void setName(String s) { 
  name = s; 
 } 
 public void setAge(int a) { 
  age = a; 
 } 
 public void setPhone(String s) { 
  phone = s; 
 } 
 public String getSex() { 
  return sex; 
 } 
 public String getName() { 
  return name; 
 } 
 public int getAge() { 
  return age; 
 }  
 public String getPhone() { 
  return phone; 
 } 
} 

  以后写XML的测试类,笔者把这个类定名为XMLTest,为了读写XML文件,必要导进以下JAVA包,"//"后为正文申明,笔者的情况是JDK 1.3.1_04,在JDK 1.4.0中测试也经由过程,XML注释器用Apache的Crimson,能够到Apache主页往上载。 

import java.io.*; //Java基本包,包括各类IO操纵 
import java.util.*; //Java基本包,包括各类尺度数据布局操纵 
import javax.xml.parsers.*; //XML剖析器接口 
import org.w3c.dom.*; //XML的DOM完成 
import org.apache.crimson.tree.XmlDocument;//写XML文件要用到 

  为了保留多个先生信息,还得借助一个汇合类(并非纯真意义上的汇合,JAVA中的汇合是汇合框架的观点,包括向量、列表、哈希表等),这里接纳Vector向量类。界说在XMLTest测试类中,定名为student_Vector。然后界说两个办法readXMLFile和writeXMLFile,完成读写操纵。代码以下: 

private void readXMLFile(String inFile) throws Exception { 
 //为剖析XML作筹办,创立DocumentBuilderFactory实例,指定DocumentBuilder 
 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
 DocumentBuilder db = null; 
 try { 
  db = dbf.newDocumentBuilder(); 
 }catch (ParserConfigurationException pce) { 
  System.err.println(pce); //出非常时输入非常信息,然前进出,下同 
  System.exit(1); 
 } 

 Document doc = null; 
 try { 
  doc = db.parse(inFile); 
 } catch (DOMException dom) { 
  System.err.println(dom.getMessage()); 
  System.exit(1); 
 } catch (IOException ioe) { 
  System.err.println(ioe); 
  System.exit(1); 
 } 
 //上面是剖析XML的全历程,对照复杂,先取根元素"先生混名册" 
 Element root = doc.getDocumentElement(); 
 //取"先生"元素列表 
 NodeList students = root.getElementsByTagName("先生"); 
 for (int i = 0; i < students.getLength(); i++) { 
  //顺次取每一个"先生"元素 
  Element student = (Element) students.item(i); 
  //创立一个先生的Bean实例 
  StudentBean studentBean = new StudentBean(); 
  //取先生的性别属性 
  studentBean.setSex(student.getAttribute("性别")); 
  //取"姓名"元素,上面类同 
  NodeList names = student.getElementsByTagName("姓名"); 
  if (names.getLength() == 1) { 
   Element e = (Element) names.item(0); 
   Text t = (Text) e.getFirstChild(); 
   studentBean.setName(t.getNodeValue()); 
  } 

  NodeList ages = student.getElementsByTagName("岁数"); 
  if (ages.getLength() == 1) { 
   Element e = (Element) ages.item(0); 
   Text t = (Text) e.getFirstChild(); 
   studentBean.setAge(Integer.parseInt(t.getNodeValue())); 
  } 

  NodeList phones = student.getElementsByTagName("德律风"); 
  if (phones.getLength() == 1) { 
   Element e = (Element) phones.item(0); 
   Text t = (Text) e.getFirstChild(); 
   studentBean.setPhone(t.getNodeValue()); 
  } 

  student_Vector.add(studentBean); 
 } 
} 

private void writeXMLFile(String outFile) throws Exception { 
 //为剖析XML作筹办,创立DocumentBuilderFactory实例,指定DocumentBuilder 
 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 
 DocumentBuilder db = null; 
 try { 
  db = dbf.newDocumentBuilder(); 
 } catch (ParserConfigurationException pce) { 
  System.err.println(pce); 
  System.exit(1); 
 } 

 Document doc = null; 
 doc = db.newDocument(); 

 //上面是创建XML文档内容的历程,先创建根元素"先生混名册" 
 Element root = doc.createElement("先生混名册"); 
 //根元素增加上文档 
 doc.appendChild(root); 

 //取先生信息的Bean列表 
 for (int i = 0; i < student_Vector.size(); i++) { 
  //顺次取每一个先生的信息 
  StudentBean studentBean = (StudentBean) student_Vector.get(i); 
  //创建"先生"元素,增加到根元素 
  Element student = doc.createElement("先生"); 
  student.setAttribute("性别", studentBean.getSex()); 
  root.appendChild(student); 
  //创建"姓名"元素,增加到先生上面,下同 
  Element name = doc.createElement("姓名"); 
  student.appendChild(name); 
  Text tName = doc.createTextNode(studentBean.getName()); 
  name.appendChild(tName); 

  Element age = doc.createElement("岁数"); 
  student.appendChild(age); 
  Text tAge = doc.createTextNode(String.valueOf(studentBean.getAge())); 
  age.appendChild(tAge); 

  Element phone = doc.createElement("德律风"); 
  student.appendChild(phone); 
  Text tPhone = doc.createTextNode(studentBean.getPhone()); 
   phone.appendChild(tPhone); 
 } 
 //把XML文档输入到指定的文件 
 FileOutputStream outStream = new FileOutputStream(outFile); 
 OutputStreamWriter outWriter = new OutputStreamWriter(outStream); 
 ((XmlDocument) doc).write(outWriter, "GB2312"); 
 outWriter.close(); 
 outStream.close();  
} 

  最初到场测试主函数,以下: 

public static void main(String[] args) throws Exception { 
 //创建测试实例  
 XMLTest xmlTest = new XMLTest(); 
 //初始化向量列表 
 xmlTest.student_Vector = new Vector(); 
 
 System.out.println("入手下手读Input.xml文件"); 
 xmlTest.readXMLFile("Input.xml"); 
 
 System.out.println("读进终了,入手下手写Output.xml文件"); 
 xmlTest.writeXMLFile("Output.xml"); 
 System.out.println("写进完成"); 
} 

  好了,保留好StudentBean和XMLTest,把Input.xml保留到事情目次下。假如您输出很细心,没敲错字母的话,能够看到"写进完成"了,往瞧瞧Output.xml文件和Input.xml文件是否是一样吧。

诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net里有这些工具吗?要简单多少?。
作者: 分手快乐    时间: 2015-1-21 11:09
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
作者: 飘灵儿    时间: 2015-1-30 16:30
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
作者: 爱飞    时间: 2015-2-1 15:44
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者: 莫相离    时间: 2015-2-6 11:47
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
作者: 柔情似水    时间: 2015-2-7 23:40
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
作者: 金色的骷髅    时间: 2015-2-8 00:14
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
作者: 小妖女    时间: 2015-2-23 17:51
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 再见西城    时间: 2015-3-14 18:19
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
作者: 兰色精灵    时间: 2015-3-21 12:31
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
作者: 深爱那片海    时间: 2015-4-1 15:11
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
作者: 精灵巫婆    时间: 2015-4-7 15:01
你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。
作者: 小女巫    时间: 2015-4-11 10:57
我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。
作者: 乐观    时间: 2015-4-15 18:05
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
作者: 变相怪杰    时间: 2015-4-16 04:37
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
作者: 冷月葬花魂    时间: 2015-4-23 18:53
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
作者: 只想知道    时间: 2015-6-4 14:51
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
作者: 简单生活    时间: 2015-6-29 05:08
如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
作者: admin    时间: 2015-7-6 10:03
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2