下面的运行不出来,谢谢,我已经认值找了,实在找不出来才找你的谢谢了
<servlet-mapping>
<serlvet-name>login</serlvet-name>
<url-pattern>login</url-pattern>
<url-pattern>log</url-pattern>
</servlet-mapping>
<servlet-mapping>
<serlvet-name>register</serlvet-name>
<url-pattern>register</url-pattern>
<url-pattern>reg</url-pattern>
<url-pattern>regis</url-pattern>
</servlet-mapping>
package com.bjsxt.server;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class WedDom4j { //用于解析XML
private List<Entity> entityList;//用于存储是N多个Entity,而每个Entity都是servlet-name与servlet-class
private List<Mapping> mappingList;//用于存储Mapping的,而每个Mapping是一个serlvet-name和N多个url-pattern
public List<Entity> getEntityList() {
return entityList;
}
public void setEntityList(List<Entity> entityList) {
this.entityList = entityList;
}
public List<Mapping> getMappingList() {
return mappingList;
}
public void setMappingList(List<Mapping> mappingList) {
this.mappingList = mappingList;
}
//构造方法
public WedDom4j() {
entityList=new ArrayList<Entity>();
mappingList=new ArrayList<Mapping>();
}
//获取Document对象的方法
private Document getDocument() {
try {
//(1)创建SAXReader对象
SAXReader reader=new SAXReader();
//(2)调用read方法
return reader.read(new File("src/WEB_INFO/web.xml"));
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
public void parse(Document doc) {
//(1)获取根元素
Element root=doc.getRootElement();//wed-app
//(2)获取servlet子元素
for(Iterator<Element> ite=root.elementIterator("servlet");ite.hasNext();) {
Element subEement=ite.next();//得到每一个servlet
//创建一个实体类
Entity ent=new Entity();//用于储存servlet-name与servlet-class
for(Iterator<Element> subIte=subEement.elementIterator();subIte.hasNext();) {
Element ele=subIte.next();//可能是servlet-name也可能是servlet-class
if("servlet-name".equals(ele.getName())) {
ent.setName(ele.getText()); //给实体类中的servlet-name赋值
}else if("servlet-class".equals(ele.getName())) {
ent.setClazz(ele.getText());
}
}
//将Entity添加到集合中
entityList.add(ent);
}
/*//测试
for(Entity entity:entityList) {
System.out.println(entity.getName()+"\t"+entity.getClazz());
}*/
//解析servlet-mapping
for(Iterator<Element> ite=root.elementIterator("servlet-mapping");ite.hasNext();) {
Element subEle=ite.next();//得到每一个servlet-mapping
//创建Mapping类的对象
Mapping map=new Mapping();
//解析servlet-mapping下的子元素
for(Iterator <Element> subIte=subEle.elementIterator();subIte.hasNext();) {
Element ele=subIte.next(); //servlet-name,也有可能是url-pattern
if("serlvet-name".equals(ele.getName())) {
map.setName(ele.getName());//servlet-name,也有可能是url-pattern
}else if("url-pattern".equals(ele.getName())) {
//调用集合对象,调用集合对象的添加方法,添加元素
map.getUrlpattern().add(ele.getText());
}
}
//Mapping添加到集合中
mappingList.add(map);
}
//测试
for(Mapping m:mappingList) {
System.out.println(m.getName());
for(String s:m.getUrlpattern()) {
System.out.println(s);
}
}
}
//用于测试
public static void main(String[] args) {
WedDom4j web=new WedDom4j();
web.parse(web.getDocument());
}
}