Javaweb学习笔记——Javaweb概述

简介: 虽然两者有些相似,但它们的应用领域和范围完全不同。HTML规范的最终版本是HTML 4.01,它已经被XHTML取代。而XHTML 是 HTML 和 XML 的混合物,它完全采用XML的语法规则来编写Web页面,有效地结合了HTML的简单性和XML的可扩展性,并且XML可以应用在金融、科研等各个领域,而XHTML只是XML在Web领域的一种应用。

前言


今天的学习内容主要包括XML语法、DTD约束,以下是今天的笔记。


一、XML语法


XML是类似于HTML的标记语言,称为可扩展标记语言,用户可以按照XML规则自定义标记。


XML和HTML的比较


XML HTML
用来传输和存储数据 用来显示数据
严格区分大小写 不区分大小写
有且只能有一个根元素 可以有多个根元素
空格不会自动删除 空格可以自动过滤
标记可以根据需要自己定义,并且可扩展 标记是预定义的


注意:XML不是HTML的升级,也不是HTML的替代产品

虽然两者有些相似,但它们的应用领域和范围完全不同。HTML规范的最终版本是HTML 4.01,它已经被XHTML取代。而XHTML 是 HTML 和 XML 的混合物,它完全采用XML的语法规则来编写Web页面,有效地结合了HTML的简单性和XML的可扩展性,并且XML可以应用在金融、科研等各个领域,而XHTML只是XML在Web领域的一种应用。


XML语法


1、文档声明


在一个完整的XML文档中,必须包含一个XML文档的声明,并且该声明必须位于文档的第一行。这个声明表示该文档是一个XML文档,以及遵循哪个XML版本的规范。


文档声明以符号“<?”开头,以符号“?>”结束,中间可以声明版本信息,编码信息以及文档独立性信息。需要注意的是,在“<”和“?”之间、“?”和“>”之间以及第一个“?”和xml之间不能有空格;另外,中括号([])括起来的部分是可选的。


声明的语法格式如下:


<?xml 版本信息[编码信息][文档独立性信息]?>


2、元素定义


在XML文档中,主体内容都是由元素(Element)组成的。元素由开始标记、属性、元素内容和结束标记构成,示例如下:

       <城市>北京</城市>


上面的示例中,“<城市>”和“</城市>”就是XML文档中的标记,标记的名称也就是元素的名称。在一个元素中可以嵌套若干子元素。如果一个元素没有嵌套在其它元素内,则这个元素称为根元素。根元素是XML文档定义的第一个元素。如果一个元素中没有嵌套子元素,也没有包含文本内容,则这样的元素称为空元素,空元素可以不使用结束标记,但必须在起始标记的“>”前增加一个正斜杠“/”来说明该元素是个空元素,例如:<img></img>可以简写成<img/>。


3、属性定义


在XML文档中,可以为元素定义属性。属性是对元素的进一步描述和说明。一个元素可以有多个属性,每个属性都有自己的名称和取值,比如:


<售价 单位=“元”>68.00</售价>


在XML文档中,属性的命名规范同元素相同,属性值必须要用双引号("")或者单引号('')引起来,否则被视为错误。


4、注释


为了对XML元素所包含的数据含义进行说明,或插入一些附加信息,比如作者姓名、地址或电话等,或者想暂时屏蔽某些XML元素,可以使用注释标记来实现,被注释的内容会被程序忽略,XML解析器不会解析和处理注释内容。XML注释和HTML注释写法基本一致。


二、DTD约束


什么是DTD约束


DTD约束是早期出现的一种XML约束模式语言,根据它的语法创建的文件称为DTD文件,可以包含元素的定义、元素之间关系的定义、元素属性的定义以及实体符号的定义。


DTD的引用


如果想使用DTD文件约束XML文档,必须在XML文档中引入DTD文件。在XML文档中引入DTD文件有两种方式,可以外部引入,也可以直接嵌入。


外部引入


1、引用本地的DTD文件,其中“外部DTD文件的URI”可以是相对于XML文档的相对路径,也可以是一个绝对路径。如下:


<!DOCTYPE 根元素名称 SYSTEM "外部DTD文件的URI">


2、引用公共的DTD文件 ,其中“外部DTD文件的URI”是Internet上的一个绝对URL地址。


<!DOCTYPE 根元素名称 PUBLIC “DTD名称” "外部DTD文件的URI">


直接嵌入


在XML文件中直接嵌入DTD文件,语法格式如下:


81422fe4a5764bd78939211471fd2499.png


DTD语法


在编写DTD文档时,需要遵循一定的语法。DTD的结构一般由元素类型定义、属性定义、实体定义、记号(notation)定义等构成,一个典型的文档类型定义会把将来要创建的XML文档的元素结构、属性类型、实体引用等预先进行定义。


元素定义


元素是XML文档的基本组成部分,在DTD定义中,每一条<!ELEMENT…>语句用于定义一个元素,基本语法格式如下:


<!ELEMENT 元素名称 元素内容>


元素名称是自定义的名称,用来定义被约束XML文档中的元素。


元素内容是对元素包含内容的声明,包括数据类型和符号两部分。主要包括5种内容形式。


1.#PCDATA:表示元素中嵌套的内容是普通文本字符串,其中,关键字PCDATA是Parsed Character Data的简写。例如<!ELEMENT 书名 (#PCDATA)>表示书名所嵌套的内容是字符串类型。


2.子元素:说明元素包含的元素。通常用一对圆括号()将元素中要嵌套的一组子元素括起来,例如,<!ELEMENT 书 (书名,作者,售价)>表示元素书中要嵌套书名、作者、售价等子元素。


3.混合内容:表示元素既可以包含字符数据,也可以包含子元素。混合内容必须被定义零个或多个,例如,<!ELEMENT 书 (#PCDATA|书名)*>表示书中嵌套的子元素书名包含零个或多个,并且书名是字符串文本格式。


4.EMPTY:表示该元素既不包含字符数据,也不包含子元素,是一个空元素。如果在文档中元素本身已经表明了明确的含义,就可以在DTD中用关键字EMPTY表明空元素。例如,<!ELEMENT br EMPTY>,其中br是一个没有内容的空元素。


5.ANY:表示该元素可以包含任何的字符数据和子元素。例如,<!ELEMENT 联系人 ANY>表示联系人可以包含任何形式的内容。但在实际开发中,应该尽量避免使用ANY,因为除了根元素外,其他使用ANY的元素都将失去DTD对XML文档的约束效果。


常见符号的作用:


  1. 问号[?]:表示该对象可以出现0次或1次。
  2. 星号[*]:表示该对象可以出现0次或多次。
  3. 加号[+]:表示该对象可以出现1次或多次。
  4. 竖线[|]:表示列出的对象中选择1个。
  5. 逗号[,]:表示对象必须按照指定的顺序出现。
  6. 括号[()]:用于给元素进行分组。


属性定义


定义元素的同时,还可以为元素定义属性。语法格式如下:


7a2c58111915442fbb6784830596d0b2.png


元素名:属性所属元素的名字。


属性名:属性的名称。


属性类型:用来指定该属性是属于哪种类型。


设置说明:用来说明该属性是否必须出现。

相关文章
|
4月前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
7月前
|
Java API 微服务
2025 年 Java 从入门到精通学习笔记全新版
《Java学习笔记:从入门到精通(2025更新版)》是一本全面覆盖Java开发核心技能的指南,适合零基础到高级开发者。内容包括Java基础(如开发环境配置、核心语法增强)、面向对象编程(密封类、接口增强)、进阶技术(虚拟线程、结构化并发、向量API)、实用类库与框架(HTTP客户端、Spring Boot)、微服务与云原生(容器化、Kubernetes)、响应式编程(Reactor、WebFlux)、函数式编程(Stream API)、测试技术(JUnit 5、Mockito)、数据持久化(JPA、R2DBC)以及实战项目(Todo应用)。
403 5
|
4月前
|
小程序 Java 知识图谱
Java 学习笔记 —— BMI & BMR 计算器
这是一个使用 Java 编写的 BMI 与 BMR 计算器小程序,可输入年龄、性别、身高和体重,计算身体质量指数(BMI)和基础代谢率(BMR),并输出健康评估结果。通过该项目,掌握了 Java 的输入处理、数据验证、条件判断、数学运算及格式化输出等基础知识,是 Java 初学者的理想练习项目。
|
10月前
|
存储 Java
# 【Java全栈学习笔记-U1-day02】变量+数据类型+运算符
本篇笔记主要围绕Java全栈学习的第二天内容展开,涵盖了变量、数据类型、运算符以及Scanner类的应用。首先介绍了变量的概念与命名规范,以及如何定义和使用变量;接着详细讲解了Java中的基本数据类型,包括整型、浮点型、字符型、布尔型等,并通过实例演示了数据类型的运用。随后,深入探讨了各类运算符(赋值、算术、关系、逻辑)及其优先级,帮助理解表达式的构成。最后,介绍了如何利用Scanner类实现用户输入功能,并通过多个综合示例(如计算圆面积、购物打折、变量交换及银行利息计算)巩固所学知识。完成相关作业将进一步加深对这些基础概念的理解与实践能力。
199 13
|
4月前
|
Java
Java 数组学习笔记
本文整理Java数组常用操作:遍历、求和、查找、最值及二维数组行求和等典型练习,涵盖静态初始化、元素翻倍、去极值求平均等实例,帮助掌握数组基础与应用。
|
6月前
|
Java 应用服务中间件 Docker
java-web部署模式概述
本文总结了现代 Web 开发中 Spring Boot HTTP 接口服务的常见部署模式,包括 Servlet 与 Reactive 模型、内置与外置容器、物理机 / 容器 / 云环境部署及单体与微服务架构,帮助开发者根据实际场景选择合适的方案。
229 25
|
6月前
|
SQL 前端开发 Java
JavaWeb 学习日记案例详解及 javaweb 完整项目案例实战指南
本文介绍了一个基于Spring Boot的JavaWeb企业员工管理系统完整案例,涵盖部门管理、员工管理、登录、异常处理、事务管理及AOP等核心功能实现,结合CSDN相关技术文章,提供详细技术方案与应用实例,适合JavaWeb开发者学习与参考。
315 0
|
10月前
|
开发框架 Java 开发工具
【Java全栈学习笔记-U1-day01】Java介绍
本笔记整理了Java学习的基础内容,涵盖程序理解、Java语言特性、JDK安装与配置、Java程序开发工具及编写步骤。重点介绍了Java程序的基本结构、编译和运行过程,以及输出语句的使用。通过实例演示了IDEA创建Java程序的方法,并强调了编码规范和注意事项。适合初学者复习和交流学习。 主要内容: 1. 理解程序:计算机组成、程序定义。 2. 简介:Java语言特点、技术平台、JDK作用。 3. 编写Java程序:编写、编译、运行步骤,基本结构。 4. 输出语句 5. DEA使用:新建工程、保存位置、文件介绍、新建类。 6. 扩展:注释、代码规范、大小写敏感、缩进等。
|
12月前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
234 4
|
10月前
|
开发框架 移动开发 Java
课时2:Java简介(Java发展概述)
课时2:Java简介(Java发展概述) 摘要: 1. Java基础知识:介绍Java作为编程语言及其思想。 2. Java的发展历史:从1991年GREEN项目到1995年正式推出,历经网景公司、HotJava浏览器等关键节点。 3. Java的版本信息:涵盖从JDK 1.0到JDK 1.8的主要版本及特性,如Lambda表达式和模块化支持。
216 0