04-Java Web和Xml

JavaWeb

1.定义

是指所有通过Java语言编写可以通过浏览器访问的程序的总称。是基于请求响应来开发的。

  1. 请求Request:是指客户端给服务器发送数据。
  2. 响应Response:是指服务器给客户端回传数据。

请求和响应成对出现,有请求就会有响应。

2.Web资源的分类

按照实现的技术和呈现的效果分为静态资源动态资源

  • 静态资源:html、css、js、txt、mp4视频、jpg图片。
  • 动态资源:jsp页面、Servlet程序。

xml

1.定义

xml是可以扩展的标记性语言。

2.作用

  1. 用来保存数据,并且这些数据具有自我描述性。
  2. 可以作为项目或者模块的配置文件。
  3. 可以用作网络传输数据的格式。

3.语法

文档说明

<?xml version="1.0" encoding="UTF-8"?>
属性说明
version版本号
encodingxml的文件编码

xml注释

和html文件注释一样

<!--   xml注释     -->

标签(元素)

  1. xml元素:指的是从开始标签到结束标签的部分,可以包含其他元素文本或者两者的混合物元素也可以拥有属性
  2. xml命名规则
名称可以包含字母、数字以及其他字符
名称不能以数字或者标点符号开始
名称不能包含空格
  1. xml中的标签也分为单标签双标签
单标签<标签名 属性=“值” 属性=“值” … />
双标签<标签名 属性=“值” 属性=“值” … >文本数据或子标签</标签名>

例:

  • 单标签
<book name="图书1"/>
  • 双标签
<book>图书1</book>

属性

属性可以提供元素的额外信息,在标签上可以书写属性,一个标签可以书写多个属性,每个属性的值必须用引号引起来。

语法规则

  1. 所有的xml元素都必须有关闭标签。
  2. xml标签对大小写敏感。
  3. xml必须正确的嵌套使用。
  4. xml文档必须有根元素,根元素就是顶级元素,没有父标签的元素,根元素必须唯一
  5. xml的属性值必须加引号。
  6. 文本区域(CDATA区)
  • CDATA语法可以告诉解析器,CDATA里的文本内容为纯文本,不需要xml语法解析,格式如下:
 <![<![CDATA[
            纯文本,不需要xml语法解析        
        ]]>

4.dom4j解析技术

dom4j编程步骤

  1. 先加载xml文件创建Document对象
  2. 通过Document对象拿到根元素对象
  3. 通过根元素.element(标签名); 可以返回一个集合,这个集合里面包含所有指定的标签名的元素对象
  4. 找到你想要修改或删除的子元素,进行相应的操作。
  5. 保存到硬盘上。

获取Document对象

先创建SaxReader对象,用于读取xml文件并创建Document对象

public void test1() throws DocumentException {
        SAXReader saxReader = new SAXReader();
        Document document = saxReader.read("src/books.xml");
        System.out.println("document = " + document);
    }

获取所有标签中的内容——遍历标签

  1. 通过创建SaxReader对象读取xml文件,获取Document对象。
  2. 通过Document对象拿到根元素对象
  3. 根据根元素对象,获取所有的book标签对象
  4. 遍历所有的book标签对象,然后获取book标签对象中的所有元素,再通过**getText()**方法拿到起始标签和结束标签之间的内容。

例:

    @Test
    public void test() throws DocumentException {

        //1.读取books.xml文件
        SAXReader reader = new SAXReader();
        Document document = reader.read("src/books.xml");

        //2.通过文档对象获取根元素
        Element rootElement = document.getRootElement();

        //3.通过根元素获取book标签对象
        List<Element> books = rootElement.elements("book");

        //4.遍历,处理每个book标签转换为Book类
        for (Element book : books){
            Element nameElement = book.element("name");
            String nameText = nameElement.getText();
            //直接获取标签名的文本内容
            String priceText = book.elementText("price");
            String authorText = book.elementText("author");
            String snValue = book.attributeValue("sn");
            System.out.println(new book(snValue,nameText,authorText));
        }
    }
}

  • element.asXML()——将当前元素转换成string对象。
  • element.elements()——获取到当前元素下指定的子元素集合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值