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