thinkphp开发大型网站,盐城做百度网站,大宗商品交易平台软件,人力外包系统文章目录零、本讲学习目标一、 XML基础#xff08;一#xff09;XML概述1、XML2、XML与HTML的比较#xff08;二#xff09;XML语法1、XML文档的声明2、XML元素的定义3、XML属性的定义4、XML注释的定义5、XML文件示例#xff08;三#xff09;DTD约束1、什么是XML约束2、…
文章目录零、本讲学习目标一、 XML基础一XML概述1、XML2、XML与HTML的比较二XML语法1、XML文档的声明2、XML元素的定义3、XML属性的定义4、XML注释的定义5、XML文件示例三DTD约束1、什么是XML约束2、什么是DTD约束3、DTD约束文档的解释4、DTD的引入1引入本地DTD文件2引入公共的DTD文件3采用内嵌方式实现DTD对XML的约束5、DTD约束的语法1元素定义2元素内容3元素内容包含的符号4属性定义5属性设置说明6属性类型四Schema约束1、什么是Schema约束2、Schema约束的优点3、Schema约束的文档4、名称空间5、声明名称空间的格式6、引入Schema文档7、Schema语法1元素定义2属性定义3简单类型4复杂类型二、程序开发体系架构一C/S体系架构二B/S体系架构三、Tomcat服务器零、本讲学习目标
了解XML的概念掌握XML语法掌握DTD约束掌握Schema约束了解C/S体系架构与B/S体系架构熟悉Tomcat的安装与启动掌握在IntelliJ IDEA中配置Tomcat服务器的方法 Java Web是使用Java技术解决相关Web互联网领域的技术栈开发一个完整的Java Web项目涉及到静态Web资源、动态Web资源的编写以及项目的部署。在Java Web中静态Web资源开发技术包括HTML、CSS、JavaScript、XML等动态Web资源开发技术包括JSP/Servlet等。本节将针对Java Web开发所用到的XML技术以及项目部署服务器Tomcat进行详细地讲解。 一、 XML基础
一XML概述
目标了解XML的概念能够知道HTML用于做什么
1、XML
XML是EXtensible Markup Language的缩写它是一种类似于HTML的标记语言称为可扩展标记语言。XML用于提供数据描述格式适用于不同应用程序之间的数据交换而且这种交换不以预先定义的一组数据结构为前提增强了可扩展性。在现实生活中很多事物之间都存在着一定的层次关系例如中国有很多省份每个省份下又有很多城市这些中国与所辖省、市之间的层次关系可以通过一张树状结构图描述。 在XML文档中通过元素的嵌套关系可以很准确地描述具有树状层次结构的复杂信息因此越来越多的应用程序都采用XML格式存放相关的配置信息以便于读取和修改配置信息。
2、XML与HTML的比较
1HTML用于显示数据XML用于传输和存储数据。 2HTML标签不区分大小写而XML标记严格区分大小写。 3HTML可以有多个根元素而格式良好的XML有且只能有一个根元素。 4在HTML中空格是自动过滤的而在XML中空格不会自动过滤。 5HTML中的标签是预定义的标签而XML中的标记可以根据需要自己定义并且可扩展。
二XML语法
目标掌握XML的语法包括文档声明、元素声明、属性定义和注释
1、XML文档的声明
从XML 1.1开始在一个完整的XML文档中必须包含一个XML文档的声明并且该声明必须位于文档的第一行。XML文档声明的语法格式?xml versionversion encodingvalue standalonevalue?
属性说明version用于指定遵循XML规范的版本号。在XML声明中必须包含version属性且该属性必须放在XML声明中其他属性之前。encoding用来指定XML文档所使用的编码集。standalone用来指定该XML文档是否和一个外部文档嵌套使用取值为yes或no。如果设置属性值为yes说明是一个独立的XML文档与外部文件无关联如果设置属性值为no说明XML文档不独立。
2、XML元素的定义
XML文档中的主体内容都是由元素Element组成的元素是以树形分层结构排列的一个元素可以嵌套在另一个元素中。XML文档中有且仅有一个顶层元素称为文档元素或根元素。元素一般是由开始标签、属性、元素内容和结束标签构成。
售价 单位元100/售价3、XML属性的定义
在XML文档中可以为元素定义属性。属性是对元素的进一步描述和说明。在一个元素中可以自定义多个属性属性是依附于元素存在的并且每个属性都有自己的名称和取值。
售价 单位元100/售价需要注意的是在XML文档中属性的命名规范与元素相同属性值必须要用双引号“”或者单引号‘’引起来否则被视为错误。
4、XML注释的定义
注释是为了便于阅读和理解如果想在XML文档中插入一些附加信息比如作者姓名、地址或电话等这些信息是对文档结构或文档内容的解释不属于XML文档的内容因此XML解析器不会处理注释内容。XML文档的注释以字符串“!--”开始以字符串“--”结束。
!--注释信息--5、XML文件示例
早餐菜单
?xml version1.0 encodingUTF-8?
breakfastfoodnameBelgian Waffles/nameprice$5.95/pricedescriptiontwo of our famous Belgian Waffles with plenty of real maple syrup/descriptioncalories800/calories/foodfoodnameStrawberry Belgian Waffles/nameprice$4.50/pricedescriptionlight Belgian waffles covered with strawberries and whipped cream/descriptioncalories300/calories/foodfoodnameBerry-Berry Belgian Waffles/nameprice$8.95/pricedescriptionlight Belgian waffles covered with an assortment of fresh berries and whipped cream/descriptioncalories900/calories/foodfoodnameFrench Toast/nameprice$4.50/pricedescriptionthick slices made from our homemade sourdough bread/descriptioncalories550/calories/foodfoodnameHomestyle Breakfast/nameprice$6.95/pricedescriptiontwo eggs, bacon or sausage, toast, and our ever-popular hash browns/descriptioncalories950/calories/food
/breakfastSpring项目的pom.xml配置文件
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdnet.huawei.spring/groupIdartifactIdSpringDemo/artifactIdversion1.0-SNAPSHOT/versiondependencies!--Spring核心--dependencygroupIdorg.springframework/groupIdartifactIdspring-core/artifactIdversion5.3.25/version/dependency !--单元测试--dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.13.2/versionscopetest/scope/dependency/dependencies
/project三DTD约束
目标掌握DTD约束的引入和DTD约束的语法
1、什么是XML约束
XML文档中的标签是可以随意定义的同一本书出现了两种售价如果仅根据标签名称区分哪个是原价哪个是会员价这是很难实现的。为此在XML文档中定义了一套规则对文档中的内容进行约束这套规则称为XML约束。对XML文档进行约束时同样需要遵守一定的语法规则这种语法规则就形成了XML约束语言。
2、什么是DTD约束
DTD约束是早期出现的一种XML约束模式语言根据它的语法创建的文件称为DTD文件。在一个DTD文件中可以包含元素的定义、元素之间关系的定义、元素属性的定义以及实体和符号的定义。通过一个案例简单认识一下DTD约束创建book.xml文件
?xml version1.1 encodingUTF-8?
书架书书名徒然草/书名作者吉田兼好/作者售价34.00元/售价/书书书名精通Spring框架/书名作者魏赫布/作者售价49.00元/售价/书
/书架创建book.dtd文件
!ELEMENT 书架 (书)
!ELEMENT 书 (书名,作者,售价)
!ELEMENT 书名 (#PCDATA)
!ELEMENT 作者 (#PCDATA)
!ELEMENT 售价 (#PCDATA)book.dtd是一个简单的DTD约束文档。每个元素都是按照book.dtd文档所规定的约束进行编写的。
3、DTD约束文档的解释
1!ELEMENT …语句定义了一个元素其中“书架”是元素的名称“(书)”表示书架元素中有一个或者多个名称为“书”的元素其中字符“”表示它所修饰的元素必须出现一次或者多次。 2“书”是元素名称“(书名,作者,售价)”表示元素书包含书名、作者、售价这三个子元素并且这些子元素要按照顺序依次出现。 3“书名”、“作者”和“售价”都是元素名称“(#PCDATA)”表示元素中嵌套的内容是普通的文本字符串。
4、DTD的引入
在XML文档中引入外部DTD文件有两种方式
第1种方式 !DOCTYPE 根元素名称 SYSTEM 外部DTD文件的URI
第2种方式 !DOCTYPE 根元素名称 PUBLIC DTD名称 外部DTD文件的URI第1种方式用来引用本地的DTD文件第2种方式用来引用公共的DTD文件其中“外部DTD文件的URI”指的是DTD文件在本地存放的位置对于第1种方式它可以是XML文档的相对路径也可以是一个绝对路径对于第2种方式它是Internet上的一个绝对URL地址。
1引入本地DTD文件
对文件book.xml进行修改在XML文档中引入本地的DTD文件book.dtd
?xml version1.1 encodingUTF-8?
!DOCTYPE 书架 SYSTEM book.dtd
书架书书名徒然草/书名作者吉田兼好/作者售价34.00元/售价/书书书名精通Spring框架/书名作者魏赫布/作者售价49.00元/售价/书
/书架2引入公共的DTD文件
引入一个公共的DTD文件则需要在DOCTYPE声明语句中使用PUBLIC属性
!DOCTYPE web-app PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//ENhttp://java.sun.com/dtd/web-app_2_3.dtd其中-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN是DTD名称它用于说明DTD符合的标准、所有者的名称以及对DTD描述的文件进行说明虽然DTD名称看上去比较复杂但这完全是由DTD文件发布者去考虑的事情XML文件的编写者只要把DTD文件发布者事先定义好的DTD标识名称进行复制就可以了。
3采用内嵌方式实现DTD对XML的约束
DTD对XML文档的约束除了通过外部引入方式实现外还可以采用内嵌的方式。在XML中直接嵌入DTD定义语句的完整语法格式
?xml version1.1 encodingUTF-8 standaloneyes?
!DOCTYPE 根元素名 [DTD定义语句……
]对book.xml进行修改在book.xml文档中直接嵌入book.dtd文件
?xml version1.1 encodingUTF-8?
!DOCTYPE 书架 [!ELEMENT 书架 (书)!ELEMENT 书 (书名,作者,售价)!ELEMENT 书名 (#PCDATA)!ELEMENT 作者 (#PCDATA)!ELEMENT 售价 (#PCDATA)
]
书架书书名徒然草/书名作者吉田兼好/作者售价34.00元/售价/书书书名精通Spring框架/书名作者魏赫布/作者售价49.00元/售价/书
/书架5、DTD约束的语法
在编写XML文档时需要掌握XML语法。同理在编写DTD文档时也需要遵循DTD的语法。DTD的结构一般由元素类型定义、属性定义、实体定义、记号定义等构成一个典型的DTD文档类型定义会把将来要创建的XML文档的元素结构、属性类型、实体引用等预先进行定义。
1元素定义
元素是XML文档的基本组成部分在DTD定义中每一条!ELEMENT…语句用于定义一个元素基本语法格式!ELEMENT 元素名称 元素内容在上面元素的定义语法格式中包含了“元素名称”和“元素内容”。其中“元素名称”是被约束的XML文档中的元素“元素内容”是对元素包含内容的声明其内容包括数据类型和符号两部分。
2元素内容
元素说明#PCDATA表示元素中嵌套的内容是普通文本字符串其中关键字PCDATA是Parsed Character Data的简写。子元素说明元素包含其他元素。通常用一对小括号将元素中要嵌套的一组子元素括起来。混合内容表示元素既可以包含字符数据也可以包含子元素。混合内容必须被定义零个或多个。EMPTY表示该元素既不包含字符数据也不包含子元素是一个空元素。如果在文档中元素本身已经表明了明确的含义就可以在DTD中用关键字EMPTY表明空元素。ANY表示该元素可以包含任何字符数据和子元素。
3元素内容包含的符号
在定义元素时元素内容可以包含一些符号不同的符号具有不同的作用
符号作用问号[?]表示该对象可以出现0次或1次星号[*]表示该对象可以出现0次或多次加号[]表示该对象可以出现1次或多次竖线[|]表示列出的对象中选择1个逗号[,]表示对象必须按照指定的顺序出现括号[()]用于给元素进行分组
4属性定义
在DTD文档中定义元素的同时还可以为元素定义属性。DTD属性定义的基本语法格式
!ATTLIST 元素名属性名1 属性类型 设置说明属性名2 属性类型 设置说明......在上面属性定义的语法格式中“元素名”是属性所属元素的名字“属性名”是属性的名称“属性类型”则是用来指定该属性是属于哪种类型“设置说明”用来说明该属性是否必须出现。
5属性设置说明
设置说明含义#REQUIRED表示元素的该属性是必须的例如当定义联系人信息的DTD时我们希望每一个联系人都有一个联系电话属性这时可以在属性声明时使用REQUIRED#IMPLIED表示元素可以包含该属性也可以不包含该属性。例如当定义一本书的信息时发现书的页数属性对读者无关紧要这时在属性声明时可以使用IMPLIED#FIXED表示一个固定的属性默认值在XML文档中不能将该属性设置为其他值。使用#FIXED关键字时还需要为该属性提供一个默认值。当XML文档中没有定义该属性时其值将被自动设置为DTD中定义的默认值默认值和FIXED一样如果元素不包含该属性该属性将被自动设置为DTD中定义的默认值。不同的是该属性的值是可以改变的如果XML文件中设置了该属性新的属性值会覆盖DTD中定义的默认值
6属性类型
CDATA是最常用的一种属性类型表明属性类型是字符数据与元素内容说明中的#PCDATA相同。当然在属性设置值中出现的特殊字符也需要使用其转义字符序列表示例如用“amp;”表示字符“”用“lt;”表示字符“”等。Enumerated枚举类型在声明属性时可以限制属性的取值只能从一个列表中选择这类属性属于Enumerated枚举类型一个ID类型的属性用于唯一标识XML文档中的某个元素。ID类型的属性值必须遵守XML名称定义的规则。一个元素只能有一个ID类型的属性而且ID类型的属性必须设置为#IMPLIED或#REQUIRED。因为ID类型属性的每一个取值都是用来标识一个特定的元素所以为ID类型的属性提供默认值特别是固定的默认值是毫无意义的。除了讲述的几种属性类型外DTD约束中还有IDREF、IDREFS、NMTOKEN、NMTOKENS、NOTATION、ENTITY和ENTITYS几种属性类型由于篇幅有限此处就不一一列举。
四Schema约束
目标掌握Schema约束的名称空间如何引入Schema文档以及Schema语法
1、什么是Schema约束
同DTD一样XML Schema也是一种用于定义和描述XML文档结构与内容的模式语言它的出现克服了DTD 的局限性。
2、Schema约束的优点
1DTD采用的是非XML语法格式缺乏对文档结构、元素、数据类型等全面的描述。XML Schema采用的是XML语法格式而且它本身也是一种XML文档因此XML Schema语法格式比DTD更好理解。 2XML有非常高的合法性要求XML DTD对XML的描述往往也被用作验证XML合法性的一个基础但是XML DTD本身的合法性却缺少较好的验证机制必需独立处理。XML Schema则不同它与XML有着同样的合法性验证机制。 3XML Schema对名称空间支持得非常好而DTD几乎不支持名称空间。 4DTD支持的数据类型非常有限。 5DTD定义约束的能力非常有限无法对XML实例文档作出更细致的语义限制。
3、Schema约束的文档
XML Schema的功能比DTD强大很多但相应的语法也比DTD复杂很多。看一个简单的Schema文档
?xml version1.0?
xs:schema xmlns:xshttp://www.w3.org/2001/XMLSchemaxs:element nameroot typexs:string/
/xs:schemaSchema文档以xsd作为后缀名以xs:schema作为根元素表示模式定义的开始。
4、名称空间
一个XML文档可以引入多个约束文档但是由于约束文档中的元素或属性都是自定义的所以在XML文档中极有可能出现代表不同含义的同名元素或属性导致名称发生冲突。为此在XML文档中提供了名称空间它可以唯一标识一个元素或者属性。这就好比打车去小营由于北京有两个地方叫小营为了避免司机走错我们就会说“去亚运村的小营”或者“去清河的小营”。这时的亚运村或者清河就相当于一个名称空间。
5、声明名称空间的格式
名称空间的声明就是在XML文档中为某个模式文档的名称空间指定一个临时名称它通过一系列的保留属性来声明这种属性的名字必须是以“xmlns”或者以“xmlns:”作为前缀。它与其他任何XML属性一样都可以通过直接或者使用默认的方式给出。名称空间声明的语法格式 元素名 xmlns:prefixnameURI注意元素名指的是在哪一个元素上声明名称空间在这个元素上声明的名称空间适用于声明它的元素和属性以及该元素中嵌套的所有元素及其属性。xmlns:prefixname指的是该元素的属性名它所对应的值是一个URI引用用来标识该名称空间的名称。需要注意的是如果有两个URI并且其组成的字符完全相同就可以认为它们标识的是同一个名称空间。创建book2.xml在book2.xml文档中学习名称空间的使用。
?xml version1.1 encodingUTF-8?
lzy:书架 xmlns:lzyhttp://www.lzy.org/xmlbook/schemalzy:书lzy:书名徒然草/lzy:书名lzy:作者吉田兼好/lzy:作者lzy:售价34.00元/lzy:售价/lzy:书lzy:书lzy:书名精通Spring框架/lzy:书名lzy:作者魏赫布/lzy:作者lzy:售价49.00元/lzy:售价/lzy:书
/lzy:书架注意在声明名称空间时有两个前缀是不允许使用的它们是xml和xmlns。xml前缀被定义为与名称空间名字http://www.w3.org/XML/1998/namespace绑定只能用于XML 1.0规范中定义的xml:space和xml:lang属性。前缀xmlns仅用于声明名称空间的绑定它被定义为与名称空间名字http://www.w3.org/2000/xmlns绑定。
6、引入Schema文档
引入方式说明使用名称空间引入XML Schema文档在使用名称空间引入XML Schema文档时需要通过属性xsi:schemaLocation来声明名称空间的文档xsi:schemaLocation属性是在标准名称空间“http://www.w3.org/2001/XMLSchema-instance”中定义的在该属性中包含了两个URI这两个URI之间用空白符分隔。其中第一个URI是名称空间的名称第二个URI是文档的位置。通过xsi:noNamespaceSchemaLocation属性直接指定通过xsi:noNamespaceSchemaLocation属性直接指定noNamespaceSchemaLocation属性也是在标准名称空间“http://www.w3.org/2001/XMLSchema-instance”中定义的它用于定义指定文档的位置。
7、Schema语法
1元素定义
Schema和DTD一样都可以定义XML文档中的元素。在Schema文档中元素定义的语法格式xs:element name名称 type类型/element用于声明一个元素名称指的是元素的名称类型指元素的数据类型。在XML Schema 中有很多内建的数据类型最常用的类型如下表
类型说明xs:string表示字符串类型xs:decimal表示小数类型xs:integer表示整数类型xs:boolean表示布尔类型xs:date表示日期类型xs:time表示时间类型
使用元素的定义的XML示例代码
lastnameSmith/lastname
age28/age
dateborn1980-03-27/dateborn这三个元素对应的Schema定义如下所示
xs:element namelastname typexs:string/
xs:element nameage typexs:integer/
xs:element namedateborn typexs:date/ 2属性定义
在Schema文档中属性定义的语法格式xs:attribute namexxx typeyyy/xxx 指的是属性名称yyy指的是属性的数据类型。其中属性的常用数据类型与元素相同都使用的是XML Schema中内创建的数据类型。
3简单类型
在XML Schema文档中只包含字符数据的元素都是简单类型的。简单类型使用xs:simpleType元素来定义。如果想对现有元素内容的类型进行限制则需要使用xs:restriction元素。接下来通过以下几种情况详细介绍如何对简单类型元素的内容进行限定。xs:minInclusive和xs:maxInclusive元素对值的限定 例如当我们定义一个雇员的年龄时雇员的年龄要求是18~58周岁之间这时需要对年龄“age”这个元素进行限定具体示例代码如下所示
xs:element nameagexs:simpleTypexs:restriction basexs:integerxs:minInclusive value18/xs:maxInclusive value58//xs:restriction/xs:simpleType
/xs:element xs:enumeration元素对一组值的限定 如果希望将 XML 元素的内容限制为一组可接受的值可以使用枚举约束enumeration constraint例如要限定一个元素名为Car的元素可接受的值只有Audi、Golf、BMW具体示例如下
xs:element namecarxs:simpleTypexs:restriction basexs:stringxs:enumeration valueAudi/xs:enumeration valueGolf/xs:enumeration valueBMW//xs:restriction/xs:simpleType
/xs:element xs:pattern元素对一系列值的限定 如果希望把 XML 元素的内容限制定义为一系列可使用的数字或字母可以使用模式约束pattern constraint。例如要定义一个带有限定的元素“letter”要求可接受的值只能是字母a-z其中一个具体示例如下
xs:element nameletterxs:simpleTypexs:restriction basexs:stringxs:pattern value[a-z]//xs:restriction/xs:simpleType
/xs:element xs:restriction元素对空白字符的限定 在XML文档中空白字符比较特殊如果需要对空白字符whitespace characters进行处理可以使用whiteSpace元素。whiteSpace元素有三个属性值可以设定分别是preserve、replace和collapse。其中preserve表示不对元素中的任何空白字符进行处理replace表示移除所有的空白字符collapse表示将所有的空白字符缩减为一个单一字符。接下来以preserve为例学习如何对空白字符进行限定具体示例如下
xs:element nameaddressxs:simpleTypexs:restriction basexs:stringxs:whiteSpace valuepreserve//xs:restriction/xs:simpleType
/xs:element 4复杂类型
在定义复杂类型时需要使用xs:complexContent元素来定义。复杂类型的元素可以包含子元素和属性这样的元素称为复合元素。在定义复合元素时如果元素的开始标签和结束标签之间只包含字符数据内容那么这样的内容是简易内容需要使用xs:simpleContent元素来定义。反之元素的内容都是复杂内容需要使用xs:complexContent元素来定义。复合元素有4种基本类型接下来针对这4种基本类型分别进行讲解。空元素 这里的空元素指不包含内容只包含属性的元素具体示例如下
product prodid2023001 /在上面的元素定义中没有定义元素“product”的内容这时空元素在XML Schema文档中对应的定义方式如下所示
xs:element nameproductxs:complexTypexs:attribute nameprodid typexs:positiveInteger//xs:complexType
/xs:element包含其他元素的元素 对于XML文档中包含其他元素的元素例如下面的示例代码
personfirstnameJohn/firstnamelastnameSmith/lastname
/person元素person嵌套了两个元素分别是“firstname”和“lastname”。这时在Schema文档中对应的定义方式如下所示
xs:element namepersonxs:complexTypexs:sequencexs:element namefirstname typexs:string/xs:element namelastname typexs:string//xs:sequence/xs:complexType
/xs:element仅包含文本的元素 对于仅含文本的复合元素需要使用“simpleContent”元素添加内容。在使用简易内容时必须在“simpleContent”元素内定义扩展或限定这时需要使用“extension”或“restriction”元素来扩展或限制元素的基本简易类型。请看一个XML的简易例子其中“shoesize”仅包含文本具体示例如下
shoesize countryfrance35/shoesize元素“shoesize”包含了属性以及元素内容针对这种仅包含文本的元素需要使用extension来对元素的类型进行扩展在Schema文档中对应的定义方式如下所示
xs:element nameshoesizexs:complexTypexs:simpleContentxs:extension basexs:integerxs:attribute namecountry typexs:string //xs:extension/xs:simpleContent/xs:complexType
/xs:element包含元素和文本的元素 在XML文档中某些元素经常需要包含文本以及其他元素例如下面的这段XML文档
letterDear Mr.nameJohn Smith/name.Your order orderid1032/orderidwill be shipped on shipdate2001-07-13/shipdate.
/letter在Schema文档中对应的定义方式如下所示
xs:element nameletterxs:complexType mixedtruexs:sequencexs:element namename typexs:string/xs:element nameorderid typexs:positiveInteger/xs:element nameshipdate typexs:date//xs:sequence/xs:complexType
/xs:element注意为了使字符数据可以出现在“letter”元素的子元素之间使用了mixed属性该属性用来规定是否允许字符数据出现在复杂类型的子元素之间默认情况下mixed的值为false。
二、程序开发体系架构
目标了解C/S体系架构和B/S体系架构
一C/S体系架构
C/S是Client/Server的缩写即客户端/服务器架构。在开发的过程中客户端需要安装相应的软件才能连接服务器并且客户端软件承担所有的逻辑和运算服务器只提供数据交互的一种体系架构。 - C/S架构的局限性
二B/S体系架构
B/S是Browser/Server的缩写即浏览器/服务器架构。在开发过程中客户端只需要一个浏览器即可以实现与服务器交互服务器承担所有的逻辑和计算浏览器只负责将结果显示在屏幕上的一种体系架构。B/S架构最大的优点是客户机上无需安装专门的客户端程序程序中的业务逻辑处理都集中到了Web服务器上客户机只要安装一个浏览器就能通过Web服务器与数据库进行交互并将交互的结果以网页的形式展现在浏览器中。 浏览器并不是直接与数据库服务器建立连接而是通过Web服务器与数据库服务器需要建立连接。由此可见B/S架构可以有效地解决数据库并发数量有限的问题。B/S架构的工作原理
三、Tomcat服务器