J2EE
目录
1、什么是XML
①指标记可扩展语言
②设计宗旨是传输和存储数据
③标签没有被预定义,需要自己定义标签
2、作用
①便于不同应用,不同平台之间的数据共享
②数据交互
③做软件的配置
3、标准XML的格式
①有且只有一个根元素,符合树形结构
②xml标签的大小写正确区分
③正确使用结束标签
④正确嵌套标签
⑤使用合法标签名
⑥定义有效的属性
4、如何定义元素——DTD约束
①加入声明 <!DOCTYPE root[]>
②定义元素分类:
<!ELEMENT 元素名称 类型> ,EMPTY:空元素 (#PCDATA)文本元素 (e1,e2)混合元素
③元素限制:
与(,)非(|)
次数:0~1次:?
1~N次:+
0~N次:*
5、属性定义
①语法:<ATTLIST element-name att-name type desc>
②type: ID :唯一 (男|女):约束 CDATA:文本 IDREF:依赖
③属性描述
#REQUIRED:必填 #IMPLIED:非必填 '男':默认值,只有在type类型为约束才可以使用
6、案列
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web[
<!ELEMENT web-app (servlet+,servlet-mapping+)>
<!ELEMENT servlet (servlet-name,servlet-class)>
<!ELEMENT servlet-mapping (servlet-name,url-pattern+)>
]>
<web-app>
<servlet>
<servlet-name>jrebelServlet</servlet-name>
<servlet-class>com.zking.xml.JrebelServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>jrebelServlet2</servlet-name>
<servlet-class>com.zking.xml.JrebelServlet2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jrebelServlet</servlet-name>
<url-pattern>/jrebelServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>jrebelServlet2</servlet-name>
<url-pattern>/jrebelServlet2</url-pattern>
<url-pattern>/jrebelServlet3</url-pattern>
</servlet-mapping>
</web-app>
这里需要注意:如果servlet元素和servlet-mapping元素交叉编写的话,不符合上面元素结果约束。再看一下结构
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web[
<!ELEMENT web-app (servlet+,servlet-mapping+,servlet+,servlet-mapping+)>
<!ELEMENT servlet (servlet-name,servlet-class)>
<!ELEMENT servlet-mapping (servlet-name,url-pattern+)>
]>
<web-app>
<servlet>
<servlet-name>jrebelServlet</servlet-name>
<servlet-class>com.zking.xml.JrebelServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jrebelServlet</servlet-name>
<url-pattern>/jrebelServlet</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>jrebelServlet2</servlet-name>
<servlet-class>com.zking.xml.JrebelServlet2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>jrebelServlet2</servlet-name>
<url-pattern>/jrebelServlet2</url-pattern>
<url-pattern>/jrebelServlet3</url-pattern>
</servlet-mapping>
</web-app>
混合元素中的约束和下面有顺序关系,类似树行结构。
案例二
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config[
<!ELEMENT config (action+)>
<!ELEMENT action (forward+)>
<!ATTLIST action
path CDATA #REQUIRED
type CDATA #IMPLIED
>
]>
<!--
config标签:可以包含0~N个action标签
-->
<config>
<!--
action标签:可以饱含0~N个forward标签 path:以/开头的字符串,并且值必须唯一 非空 ,子控制器对应的路径
type:字符串,非空,子控制器的完整类名
-->
<action path="/registerAction" type="test.action.RegisterAction">
<forward name="success" path="/index.jsp" redirect="true" />
<forward name="failed" path="/register.jsp" redirect="false" />
</action>
<action path="/loginAction" type="test.action.LoginAction">
<forward name="a" path="/index.jsp" redirect="false" />
<forward name="b" path="/welcome.jsp" redirect="true" />
</action>
</config>