目录
本片文章思维导图如下:
1.关于xml
什么是xml?
xml是可扩展标记语言,是互联网数据传输的重要工具。
为什么要学习xml?
在编辑网页时,我们使用的标签都是预先规定好的,不能根据自己意愿添加规定外的标签。
xml文件可以根据自己需要来定义标签,从而克服某些局限性。
xml的特点及作用?
特点:xml与操作系统,编程语言的开发平台都无关;
实现不同系统之间的数据交互。
作用:配置应用程序和网站;数据交互;Ajax基石
什么是标准的xml格式?
1.xml声明
一般是xml文档的第一行
2.根元素
有且只有一个根元素
3.元素
所有的xml元素都必须有结束标签
xml标签区分大小写
xml必须正确嵌套
名称命名规则:可包含字母,数字和其他字符;不能以数字或标点符号开始;中不能包含空格。
4.定义有效的属性
如:<元素名 属性名="属性值"/>
<Student ID="001"><Name>小宝 </Name></Student>
注意:属性值要用双引号包裹,一个元素可以有多个属性,属性值中不能直接包含< . " &
2.元素定义
在xml中加入dtd声明
<!DOCTYPE 根节点名称[ ]>
在[]中定义元素,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app [
<!ELEMENT web-app (servlet+,servlet-mapping+)>
<!ELEMENT servlet (servlet-name+,servlet-class+)>
<!ELEMENT servlet-mapping (servlet-name,url-pattern+)>
<!ELEMENT servlet-name (#PCDATA)>
<!ELEMENT servlet-class (#PCDATA)>
<!ELEMENT url-pattern (#PCDATA)>
]>
<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>
元素的分类
空元素:没有内容的元素
文本元素:有内容的元素
混合元素:有子元素的元素
元素的限制
与(,)或(|)
次数: 2.1 (?)表示0或1次
2.2( * )表示0-N次
2.3 (+)表示1-N次
3.属性定义
语法:<!ATTLIST 元素名 属性>
属性类型
1.ID 表示唯一
2.(男|女)‘男’ 二选一,有默认值
3.CDATA 文本类型
4.IDREF 依赖 引用已经出现过的类型
属性描述
1.#REQUIRED 必填
2.#IMPLIED 非必填
3.‘默认值’ 只有type为上面属性类型第二点的时候才能用
代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!--
config标签:可以包含0~N个action标签
-->
<!DOCTYPE config [
<!ELEMENT config (action*)>
<!ELEMENT action (forward*)>
<!ELEMENT forward EMPTY>
<!ATTLIST action
path CDATA #REQUIRED
type CDATA #REQUIRED
>
<!ATTLIST forward
name ID #REQUIRED
path CDATA #REQUIRED
redirect (false|true) 'false'
>
]>
<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>