DTD约束
需要在头部引入:
<!DOCTYPE web-app SYSTEM "web-app_2_3.dtd">
格式:
<web-app> <servlet> <servlet-name></servlet-name> <servlet-class></servlet-class> </servlet> <servlet-mapping> <servlet-name></servlet-name> <url-pattern></url-pattern> </servlet-mapping> </web-app>
约束:
?可以出现,但只能出现一次
*允许出现任意次数,0
+最少出现一次,可多次
()分组
|选择一个 a|b
,需要按指定顺序 a,b,c
Schema约束
需要在头部添加
<web-app xmlns="http://www.example.org/web-app_2_5"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.example.org/web-app_2_5 web-app_2_5.xsd"
version="2.5">
DOM4J解析
//创建解析器对象
SAXReader sax=new SAXReader();
//加载xml文件获取dom对象
Document doc=sax.read("src/com/oracle/demo02/web.xml");
//获得根元素web-app
Element root=doc.getRootElement();
//先获取根下的servlet元素
Element servlet=root.element("servlet");
//获取servlet下的servlet-class元素对象
Element servletClass=servlet.element("servlet-class");
//获取完整的包名+类名
String classname=servletClass.getText();
System.out.println(classname);
//反射调用MyServlet中的所有方法
Class c=Class.forName(classname);
MyServlet my=(MyServlet)c.newInstance();
my.init();//创建
my.service();//执行
my.destroy();//结束