首页编程java编程java xml中存什么?java中xml有什么作用,用在什么地方

java xml中存什么?java中xml有什么作用,用在什么地方

编程之家2023-10-11114次浏览

大家好,java xml中存什么相信很多的网友都不是很明白,包括java中xml有什么作用,用在什么地方也是一样,不过没有关系,接下来就来为大家分享关于java xml中存什么和java中xml有什么作用,用在什么地方的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

java xml中存什么?java中xml有什么作用,用在什么地方

java中xml有什么作用,用在什么地方

java中xml一般是用来当做配置文件的,比方说struts的struts.xml、spring的application.xml,这里面记录的一般是配置信息,比方说servlet配置,映射注入配置等等都可以用xml来配置,当然配置也可以写入数据库,如果配置和程序的业务无关,也和系统配置无关,仅仅和系统构架有关,那就可以把配置写入xml里面来存储这些配置。

有关java和xml的

一般情况是使用DOM,SAX这是2个开原的插件,你只要在你的程序里导入就可以了JDOM或者DOM4J的JAR包就可以了。

下载的这2个插件都有自己的网站,建议使用JDOM这个比较简单的,至于如何读和写,网上有很多的例子.

java xml中存什么?java中xml有什么作用,用在什么地方

XML作为全球通用的结构化语言,越来越受人们青睐,各种开发平台(比如Microsoft Studio系列、Oracle系列、Inprise Borland系列等)也都把支持XML开发作为宣传口号之一。由于笔者所从事的电子政务开发较早的引入了XML,所以尝到了许多甜头,在许多项目中利用XML数据交换信息,省去了许多麻烦事,不用制定繁锁的数据格式,利用XML数据易于表达,也利于一线开发者跟踪调试。

笔者先前也曾发表过相关的文章,比如《简析Delphi中的XML编程》一文,有兴趣的读者可以到Google网(http://www.google.com)去搜索一下,有很多媒体转载。今天笔者想探讨的是关于JAVA中的XML编程,希望对正在或想要学习XML编程的新老读者有所帮助。

在XML应用中,最常用也最实用的莫过于XML文件的读写,所以笔者通过一个简单的XML文件读写来作简要分析。可以在任何文本编辑器中先建立如下结构的XML文件,类似于HTML结构,但XML语义比较严格,起始标记必须配对,比如"〈学生花名册〉"与"〈/学生花名册〉"对应,空格多少可不必在意,但一般都以缩格形式书写,便于阅读。把此文件命名为Input.xml,可以在任何支持XML的浏览器中打开测试一下,如果输入正确,在浏览中可以看到此文件的树形表示结构。如果您还对XML结构感到比较陌生,建议先看看《简析Delphi中的XML编程》一文中关于XML文件的说明。

java xml中存什么?java中xml有什么作用,用在什么地方

Input.xml

[code:1:af65f1d5b3]

<?xml version="1.0" encoding="GB2312"?>

<学生花名册>

<学生性别="男">

<姓名>李华</姓名>

<年龄>14</年龄>

<电话>6287555</电话>

</学生>

<学生性别="男">

<姓名>张三</姓名>

<年龄>16</年龄>

<电话>8273425</电话>

</学生>

</学生花名册>

[/code:1:af65f1d5b3]

准备工作做完后,接着就开始写实质性的JAVA代码了。为保存从XML文件读入的信息,需要先建一个简单的Bean来保存学生信息,命名为StudentBean,代码如下所示:

StudentBean.java

[code:1:af65f1d5b3]

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;

}

}

[/code:1:af65f1d5b3]

之后写XML的测试类,

TESTXml.java

[code:1:af65f1d5b3]

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文件要用到

public class XMLTest{

Vector student_Vector;

XMLTest(){

}

//为了保存多个学生信息,还得借助一个集合类(并不是单纯意义上的集合,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("写入完成");

System.in.read();

}

}[/code:1:af65f1d5b3]

了,保存好StudentBean和XMLTest,把Input.xml保存到工作目录下。如果您输入很仔细,没敲错字母的话,可以看到"写入完成"了,去瞧瞧Output.xml文件和Input.xml文件是不是一样吧。如果您在调试过程中发现有什么问题,欢迎通过E-Mail:nbDeveloper@hotmail.com与笔者取得联系。 [/code]

web.xml文件主要配置有哪些,都有什么含义

①web.xml文件是用来配置:欢迎页、servlet、filter等配置文件用的。当你的web工程没用到这些时,你可以不用web.xml文件来配置你的web工程

web.xml的模式文件中定义的标签并不是定死的,模式文件也是可以改变的,一般来说,随着web.mxl模式文件的版本升级,里面定义的功能会越来越复杂,

也即标签元素的种类会越来越多,但有些是不常用的,我们只需记住一些常用的就可以了。

首先是定义头和根元素

声明为xml文件,版本为1.0,编码为utf-8

声明该文件的内容可以使用xsi的标签库

声明标签的使用范围是被javaee的开发使用的

声明可以使用的标签库和对应的具体的标签库版本地址。

web.xml的模式(Schema)文件中定义了多少种标签元素,它就能拥有定义出来的那些功能

随着web.mxl模式文件的版本升级,里面定义的功能会越来越复杂,也即标签元素的种类会越来越多.

定义项目的名称.

项目名称

欢迎页面

servlet

配置springmvc DispatcherServlet(前台控制器)-->example这个Servlet的名字是example,可以有多个DispatcherServlet,是通过名字来区分的。

async-supported

启动一个新的线程去处理你的请求,完成之后调用你指定的回调函数来完成整个异步操作。

一般的jsp是通过地址栏输入一个地址,或者提交表单的方式发送请求的,这样网页都会被刷新。但是如果你在jsp页面发送一个ajax请求的话,跟前两种不同,

后台会返回给jsp页面内容,页面不会直接刷新,这样可以把返回的数据写在页面的div中,这样就完成了页面的局部刷新。

举个例子,baidu你做一个查询功能,页面上有查询条件和查询结果显示区域,你可以点查询按钮的时候通过ajax异步发送你的查询条件,

而你得到后台返回的查询结果后,更新你的jsp页面的查询结果,jsp的其他部分,比如查询条件,都没有更新,jsp没有刷新,而是更新了查询结果这一块内容

  url-pattern  默认匹配所有请求Servlet拦截匹配规则可以自已定义1、拦截*.do、*.htm,例如:/user/add.do,这是最传统的方式,最简单也最实用。不会导致静态文件(jpg,js,css)被拦截。2、拦截/,例如:/user/add,可以实现现在很流行的REST风格。很多互联网类型的应用很喜欢这种风格的URL。弊端:会导致静态文件(jpg,js,css)被拦截后不能正常显示。

监听器

Listener获取的是Web应用ServletContext(application)的配置参数。-为Web应用配置Listener的两种方式:使用@WebListener修饰Listener实现类即可在web.xml文档中使用进行配置。我们选择web.xml这种配置方式,只有一个元素指定Listener的实现类.

②启动WEB项目的时候,Tomcat容器首先会去它的配置文件读取两个节点listener和context-param。

然后Tomcat会创建一个ServletContext(application),WEB项目所有部分都将共享这个上下文

将applicationContext.xml存入ServletContext中

Tomcat容器根据class类路径来创建监听

上面这些都是在web项目还没有完全启动起来就完成的工作,而servlet是在第一次发起请求时被实例化的

而且一般不会被容器销毁,并服务于多个用户的请求.

web.xml的加载顺序是: context-param-> listener-> filter-> servlet.

filter

Filter可认为是Servlet的“增强版”,因此Filter配置与Servlet的配置非常相似,需要配置两部分:配置Filter名称和Filter拦截器URL模式。区别在于Servlet通常只配置一个URL,而Filter可以同时配置多个请求的URL。配置Filter有两种方式:

在Filter类中通过Annotation进行配置。

在web.xml文件中通过配置文件进行配置。

①百度

②http://blog.csdn.net/believejava/article/details/43229361

1.在web.xml里配置监听器、过滤器、拦截器,书写顺序有没有什么要求?

根据网上资料来分析,应该是没有书写顺序的要求,容器会按照自己的加载方式去加载顺序.

2.监听器是必须要配置的吗?

不是必须要配置.

3假设配置了多个listener,那么会先加载哪个listener

如果有多个listener的情况下,我们可以根据自己的需要去手动设置先去加载哪个listener.

今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

技能树.IT修真院

“我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~

http://www.jnshu.com/login/1/14708688

PPT:  https://ptteng.github.io/PPT/PPT-java/Java-task2-webxml.html#/

好了,文章到此结束,希望可以帮助到大家。

一个人看的动漫 成全动漫视频在线观看免费高清java this 代表什么 java里的“this”到底是什么意思