Javaweb基础知识

本文介绍了JavaWeb的基础知识,包括Servlet、JSP、JavaBean和JDBC技术,阐述了Web应用程序的构成和原理。此外,详细讲解了XML的语法、DTD约束以及JSON的相关概念,探讨了静态与动态Web的区别以及JavaEE的四层架构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • web程序设计基础知识

(一)基础知识

1.1课程性质:

主要内容包括Servlet、JSP、JavaBean、JDBC等技术;

本课程是在《网页设计》、《Java面向对象程序设计》、《数据库原理及应用》三门课的内容的基础上开设的课程,为后继课程《Web开发框架技术》的学习奠定了理论和实践的基础

1.2目标

掌握三层架构的基本知识,具备三层架构软件设计理念

1.3什么是Web应用

Java Web应用由一组Servlet,HTML页,类,以及其他可以被绑定的资源构成,他可以在各种供应商提提供的实现Servlet规范的Servlet容器中运行

1.4 Web应用程序包含内容

Servlet,JSP,实用类,静态文档(如HTML,图片等),描述web应用的信息(web.xml)

1.5 Web应用程序的原理及组成部分

浏览器,HTML,HTTP,Web服务器软件,数据库

1.6静态web和动态web的区别

可交互性、是否可以对数据库进行操作

1.7 JavaEE的简要介绍

JavaEE是对JavaSE技术的眼神和扩展,分了四层:客户层组件,Web层组件,企业信息系统层组件;JavaEE的容器是一组提供服务的管理器,运行在客户端的容器,运行在JavaEE服务期短的容器

  • XML(DTD,Schema)

2.1 XML概述

在现实生活中,很多事物之间的关联关系可以用树状结构图来描述,可以很直观地描述层次之间的关系,但是对于程序而言,解析图片内容非常困难,采用XML文件来保存这种具有树状结构的数据是最好的选择

XML是Extensible Markup Language,可扩展标记语言,文件后缀名为:.xml

HTML是用来显示数据,XML是用来存储和传输数据

为了便于不同应用,不同平台之间的数据共享和通信

具体的作用点为:(1)可以作为一种简单的数据库,存储并检索数据;

  1. 传输约定格式的文件
  2. 做软件的配置【配置文件:保存软件设置的文件】

XMl的哥哥HTML

  1. HTML可以有多个根元素,而格式良好的XML只能有一个根元素
  2. HTML中空格是自动过滤的,而XML中空格不会自动删除
  3. HTML中的标记是预定义的,而XML中的标记可以根据需要自己定义,并且可扩展

 

XML的闺蜜JSON

JSON:JavaScript Object Notation,Java对象表示法,作用也是存储和交换文本信息

两者比较:JSON比xml更小,更快,更易解析,所以也更受欢迎

两者作用范围:JSON适用于简单的传值,XML适用于更广阔范围

2.2 XML语法

2.2.1文档的声明:

  1. 在一个完整的XML文档中,必须包含一个XML文档的声明,且该声明必须位于文档的第一行,这个声明表示该文档是一个XML文档,以及遵循哪个XML版本的规范
  2. XML文档声明的语法格式如下所示:

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

标绿的地方不能有空格

例:<?xml version=”1.0” encoding=”UTF-8” standalone=”yes” ?>

Version:版本说明  encoding:编码方式  

standalone:是否为独立的文档  yes:是  no:依赖于外部文档

2.2.2 元素定义

根元素:没有嵌套其他的元素在内

空元素:例如<img></img>可以简写成<img/>

2.2.3属性定义

属性是对元素的进一步说明和描述,在一个元素中可以有多个属性

在XML文件中命名规则与HTML相同,但是属性值必须用双引号或者单引号引起来,否则视为错误。正确写法:<售价 单位=>68</售价>

2.2.4注释

<!--注释信息-->

2.3 DTD约束

2.3.1什么是约束

如一本书在编写代码时赋予了两种价格,这样就很难在前端区分哪个是会员价,不恰当

2.3.2 DTD约束

DTD是早期出现的XML约束模式语言,根据他的语法创建的文件称为DTD文件,在DTD文件中,可以包含元素的定义,元素之间关系的定义,元素属性的定义和实体与符号的定义

2.3.3引入DTD约束的两种方式:

  1. 引入本地的DTD文件:

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

  1. 引入公共的DTD文件:Internet上的一个绝对URL地址

<!DOCTYPE 根元素名称 PUBLIC DTD名称 外部的DTD文件的URL>

如果希望引入一个公共的DTD文件,则需要在DOCTYPE声明语句中使用PUBLIC属性,具体示例如下:

<!DOCTYPE web-app PUBLIC

“-//Sun Microsystem, Inc.//DTD Web Application 2.3//EN”

“http://java.sun.com//dtd//web-app_2_3.dtd”>

其中第一个引号里边的是DTD的名称,用来说明DTD符合的标准,所有者的名称以及对DTD描述的文件进行说明,虽然DTD名称看上去比较复杂,但这完全是由DTD文件发布者去考虑的事情,XML文件的编写者只要把DTD文件发布者事先定义好的DTD表示名称复制进去就可以了

如果是采用内嵌式的方式,可以定义完整语句的语法格式如下:

<?xml version=1.0 encoding=UTF-8 standalone=yes ?>

<!DOCTYPE 根元素名{

DTD定义语句

``````

}>

 

2.3.4 DTD语法

DTD的结构一般由元素类型定义,属性定义,实体定义,记号(notation)定义等构成,一个典型的文档类型定义会把将来要创建的XML文档的元素结构,属性类型,实体引用等预先进行定义。接下来,针对DTD结构中所涉及的语法进行详解

  1. 元素定义

在XML文档中,每一条<!ELEMENT``>语句用于定义一个元素,其基本的语法格式如下所示:<!ELEMENT 元素名称 元素内容>

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

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

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

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

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

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

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

在定义元素时元素内容中可以包含一些符号,不同的符号具体有不同的作用,具体如下:

①问号【?】:表示该对象可以出现0次或者1次

②星号【*】:表示该对象可以出现0次或多次

③加号【+】:表示该对象可以出现1次或者多次

④竖线【|】:表示列出的对象中选择1个

⑤逗号【,】:表示对象必须按照指定的顺序出现

⑥括号【()】:用于给元素进行分组

  1. 属性定义

①设置说明

在定义元素的同时还能为元素定义属性,定义属性的基本语法格式如下:

 

定义元素的属性时,有4中设置说明可以选择,具体如表所示:

#REQUIRED:表示元素的该属性是必须的

#IMPLIED:表示元素可以包含该属性,可也以不包含该属性

#FIXED:表示一个固定的属性默认值,在XML文档中不能将该属性设置为其他值,使用FIXED关键字时,还要为该属性提供一个默认值,当XML文档中没有定义该属性时,其值将自动被设置为DTD中定义的默认值

默认值:和FIXED一样,如果元素不包含该属性,该属性将被自动设置为DTD中定义的默认值,不同的是,该属性的值是可以改变的,如果XML文件中设置了该属性,新的属性值会覆盖DTD中定义的默认值

②属性类型

在DTD中定义元素的属性时,有10种属性类型可以选择,常见的几种属性类型介绍如下:

CDATA:最常用的属性类型,表明该属性类型是字符数据,与元素内容说明中的#PCDATA相同。当然,在属性设置值中出现的特殊字符,也需要使用其转义字符序列来表示,如&表示字符(&),用<表示字符(<)等

Enumerated(枚举类型):在声明属性时,可以限制属性的取值只能从一个列表中选择,这类属性属于Enumerated(枚举类型)。需要注意的是,在DTD定义中并不会出现关键字Enumerated。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值