• 第01章 Web应用概述


    序言

    1.内容介绍

    ​ 本章介绍了Web技术基础知识,对于软件架构、C/S架构、B/S架构以及对应的工作原理进行了详细的介绍,对于Web服务器的使用,主要引入了市场主流的Tomcat服务,对于该服务器的安装与使用进行了演示,最后一 一说明了市场使用率很高的Web开发框架。

    2.理论目标

    • 掌握B/S与C/S程序架构区别
    • 掌握B/S架构工作原理
    • 理解URL的组成元素
    • 掌握常用的主流的Web服务器

    3.实践目标

    • 熟练安装配置Tomcat服务器,为项目部署打下坚实基础
    • 熟练进行Web项目部署,保证项目健康运行

    4.实践案例

    • Tomcat服务器安装配置

    5. 内容目录

    • 1.Web技术基础知识
    • 2.Web应用初体验
    • 3.Web应用流行框架

    第1节 Web技术基础知识

    1. 软件架构

    • 目前市面上的软件分为两种:
      • C/S架构: ‘C’指客户端,S指服务器。一般我们使用的都是C/S架构的软件,例qq,播放器等等。
      • B/S架构:‘B’指浏览器,S指服务器。平常我们常用的京东、淘宝、12306等等。

    2. C/S架构

    2.1 什么是C/S架构

    • 是一种比较早的软件架构,主要应用于局域网内。在这之前经历了集中计算模式,随着计算机网络的进步与发展,尤其是可视化工具的应用,出现过两层C/S和三层C/S架构,不过一直很流行也比较经典的是我们所要研究的两层C/S架构。

    • C/S架构软件(即客户机/服务器模式)分为客户机和服务器两层:第一层是在客户机系统上结合了表示与业务逻辑,第二层是通过网络结合了数据库服务器。简单的说就是第一层是用户表示层,第二层是数据库层。
    • 客户端和服务器直接相连,这两个组成部分都承担着重要的角色,第一层的客户机并不是只有输入输出,运算等能力,它可以处理一些计算,数据存储等方面的业务逻辑事务;第二层的服务器主要承担事务逻辑的处理,本来事务很重,但是由于客户机可以分担一些逻辑事务,所以减轻了服务器的负担,使得网络流量增多。

    2.2 C/S架构优点

    • 客户端和服务器直接相连

      • 点对点的模式使得更安全。
      • 可以直接操作本地文本,减少获取文本的时间和精力。
      • 由于直接相连,减少了通信流量,这对于客户来说可以节约一大笔费用。
      • 直接相连,所以响应速度快。当通信量少的时候没什么感觉,但是如果通信量庞大,就不会出现拥堵的现象。
    • 客户端可以处理一些逻辑事务

      • 充分利用两者的硬件设施,避免资源的浪费。
      • 为服务器分担一些逻辑事务,可以进行数据处理和数据存储。可以处理复杂的事务流程。
      • 客户端有一套完整应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。
    • 客户端操作界面

      • 可以提高客户的视觉体验,满足客户需求。
      • 客户端操作界面可以随意排列,充分满足客户的需要,展现特点与个性。

    2.3 C/S架构缺点

    • 客户端
      • 只能处理一些功能单一的多系统。
      • C/S架构适用于局域网,对网速的要求比较高。
      • 由于需要安装客户端,安装部署困难,所以不易扩展。
      • 若客户端使用的系统不同,就要针对这些系统分别编写程序。
      • 客户端界面缺乏通用性,且当业务更改时就需要更改界面,重新编写。
      • 客户端需要专门的客户端程序,比较麻烦,针对点多面广且不具备网络条件的用户群体,不能够实现快速部署安装和配置。
    • 服务器
      • 用户数增多会出现通信拥堵,服务器响应速度慢等情况。
      • 当服务器难当大任时,只能将其废弃,使用更强大的服务器。
      • 当客户端用户增多时,服务器难以承担重负,是名副其实的“胖”客户端。
      • 用户是通过ODBC连接到数据库的,且每个连接到数据库的用户都会保持一个ODBC连接,会一直占用中央服务器的资源,对服务器的要求很高。
    • 用户
      • 没有安装客户端的外部用户不能访问。
      • 只有安装了客户端才能访问服务器,所以用户不能随时随地的访问。
      • 用户是通过ODBC连接到数据库的,所以用户数受限,不易扩张。
      • 由于针对小范围的客户,所以不能实现真正大范围的信息共享,信息传达和发布。

    2.4 C/S架构应用场景

    C/S架构的软件是在是数不胜数,从办公的OFFICE,WPS,WINRAR到杀毒软件如金山,瑞金再到娱乐软件,如播放器,QQ,微信等,无处不见C/S架构。

    3. B/S架构

    3.1 B/S架构及背景

    • 随着Internet和WWW的流行,以往的主机/终端和C/S都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了B/S型模式,即浏览器/服务器结构。它是C/S架构的一种改进,可以说属于三层C/S架构。主要是利用了不断成熟的WWW浏览器技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。

    ​ 

    • 第一层是浏览器,即客户端,只有简单的输入输出功能,处理极少部分的事务逻辑。由于客户不需要安装客户端,只要有浏览器就能上网浏览,所以它面向的是大范围的用户,所以界面设计得比较简单,通用。

    • 第二层是WEB服务器,扮演着信息传送的角色。当用户想要访问数据库时,就会首先向WEB服务器发送请求,WEB服务器统一请求后会向数据库服务器发送访问数据库的请求,这个请求是以SQL语句实现的。

    • 第三层是数据库服务器,他扮演着重要的角色,因为它存放着大量的数据。当数据库服务器收到了WEB服务器的请求后,会对SQL语句进行处理,并将返回的结果发送给WEB服务器,接下来,WEB服务器将收到的数据结果转换为HTML文本形式发送给浏览器,也就是我们打开浏览器看到的界面。

    3.2 B/S架构优点

    B/S架构是应WEB技术的飞速发展而从传统的C/S架构发展而来,并且一举成为当今主要的网络架构。目前主要的网站,尤其是商务网站都是基于B/S架构建立的。

    • 浏览器
      • 能面对广大的用户实现信息传播共享。
      • 浏览器只处理一些简单的逻辑事务,负担小。
      • 页面的更新能实现同步,所有用户都能看到。
      • 界面设计开发简单,对程序员的要求较低,不需要大量的培训。
      • 业务扩展方便,只需要增加几个业务扩展的页面即可,不需要大量的编程。
      • 界面不需要太多的编写,比较通用,更改界面也比较简单,所以几乎不需要维护。
      • 由于Web的平台无关性,可以从一台服务器、几个用户的工作组级扩展成为拥有成上万用户的大型系统。
    • WEB服务器
      • B/S建立在广域网上,所需的网速不高。
      • 外部的用户也可以对浏览器进行访问。
      • 界面人性化,通用化。
      • 不需要安装客户端,只要能连上网,就能随时随地的浏览页面。
      • 借助Internet强大的信息发布与信息传送能力可以有效地解决企业内部的大量不规则的信息交流。
      • 所有的用户都是通过一个JDBC连接缓冲池连接到数据库的,用户并不保持对数据库的连接,用户数基本上是无限的。
    • 数据库服务器
      • 数据都集中存放在数据库服务器,所以不存在数据不一致现象。
      • 能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
      • 在数据库服务器上不一定使用WINDOWS系统,选择更多,成本更少。
      • 如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。
      • 数据存放在数据库服务器,客户端并不存放任何业务数据或者数据库连接信息,所以数据比较安全。
      • 随着服务器负载的增加,可以平滑地增加服务器的个数并建立集群服务器系统,然后在各个服务器之间做负载均衡。
    • 成本
      • 软件重用性强,节省了大量的成本。
      • 不需要安装特殊的软件,客户端几乎零维护。
      • 开发简单,升级便捷,人员不需要太多培训,节省了大量的资金。
      • 客户端几乎不需要维护,只要盯紧服务器就可以了,所以成本较小。
      • 一般只有初期一次性投入成本,有利于软件项目控制和避免IT黑洞。
      • 建立在广域网之上的, 不必是专门的网络硬件环境,例如电话上网, 租用设备等,成本较小。

    3.3 B/S架构缺点

    虽说B/S架构有很多优越性,但是也不可避免有些缺陷。不过,在理论上,既然B/S是C/S的改进版,应该克服了C/S的很多缺陷,所以缺点不是很多.

    • 客户端
      • 面通用化,不突出个性。
      • 页面需要不断地动态刷新,尤其是用户增多,网速慢得情况,很费时。
      • 由于不需要安装客户端,客户端易扩展,还有就是外部用户也可以访问,所以B/S面对大量的不可知用户。
    • 服务端
      • 用户增多时,服务器响应速度慢。
      • 功能虽然多样化,但是不能专门化,不能实现复杂的功能。
      • 服务器承担着重要的责任,数据负荷较重。一旦发生服务器“崩溃”等问题,后果不堪设想。

    3.4 B/S架构应用

    新出来了一个WEBQQ,从WEBQQ名称中的WEB就不难看出它属于B/S架构,是一种浏览器服务器结构。事实上也是如此,因为WEBQQ根本不需要安装客户端,只需要有浏览器就可以进行聊天交互了。

    4. B/S架构工作原理

    • 工作流程:

      • 客户端发送请求: 用户在客户端【浏览器页面】提交表单操作,向服务器发送请求,等待服务器响应;
      • 服务器端处理请求: 服务器端接收并处理请求,应用服务器端通常使用服务器端技术,如JSP等,对请求进行数据处理,并产生响应;
      • 服务器端发送响应: 服务器端把用户请求的数据(网页文件、图片、声音等等)返回给浏览器。
      • 浏览器解释执行HTML文件,呈现用户界面。
    • B/S架构采用请求/响应模式进行交互

    • 浏览器:
      • 是阅读和浏览Web的工具,它是通过B/S方式与Web服务器交互信息的。
      • 一般情况下,浏览器就是客户端,它要求服务器把指定信息传送过来,然后通过浏览器把信息显示在屏幕上。
      • 浏览器实际上是一种允许用户浏览Web信息的软件,只不过这些信息是由Web服务器发送出来的。
    • 服务器:
      • 服务器(Server),它既是计算机硬件的称谓,有时又是计算机服务端软件的称谓,用户应该区分开它们,主要就是从语境上去区分。
      • 服务器是一种计算机硬件:服务器应该算是一种高性能的计算机,它作为网络的节点,存储、处理网络上的数据、信息,因此也被称为网络的灵魂。
      • 服务器是一种计算机软件:一般IIS服务器、Java服务器、.NET服务器等名词,一般都是指一种计算机软件。当用户使用计算机上网时,其实是访问服务器硬件。但 是,这个服务器硬件上安装了服务器软件,例如IIS服务器、Java服务器、.NET服务器,它们负责接收用户的访问请求,并根据请求经过计算将数据返回给用户的客户端(浏览器)。
      • Web服务器:Web服务器实际上是一种连接在Internet上的计算机软件。它负责Web浏览器提交的文本请求。

    5. B/S vs C/S

    • C/S架构
      • 软件使用前必须需要安装
      • 软件更新时,客户端和服务器必须都得更新
      • C/S架构不能跨平台使用,例如安卓手机上的软件在苹果手机上不能使用
      • C/S客户端和服务器的通信采用的自由协议,相对安全,例如在手机上安装app时出现“是否同意安装该应用等等”
    • B/S架构
      • 软件使用前不需要安装
      • 软件客户端无需更新
      • 可以跨平台使用
      • B/S的通信采用的是通用的HTML协议,相对不安全

    6. 服务器分类

    类别服务器软件举例功能
    Web服务器软件Apache、IIS 、PWS等接收来自浏览器的任务请求,分派任务给其他服务器软件,
    接收其他服务器软件对任务的处理的结果,将该结果返回给浏览器
    服务器点脚本解释软件PHP、ASP等接收来自Web服务器软件分派给自己的服务器端脚本执行任务:
    进行脚本的语法分析,若语法有错误,则向Web服务器返回错信息,
    否则,执行脚本,将解析结果/执行结果返回给Web服务器软件
    数据库服务器软件MySQL、Oracle、MS SQL Server等接收来自其他服务器软件的数据处理任务请求,执行该任务,将执行结果返回给请求者
    电子邮件服务器软件MS Exchange、Sendmail等接收来自其他服务器软件的数据处理任务请求,执行该任务,将执行结果返回给请求者

    7. Web服务器

    • Web服务器
      • 是可以向发出请求的浏览器提供文档的程序
      • 提供网上的信息浏览服务
    • 常用的Web服务器
      • Microsoft:IIS(Internert Information Service)
        • 最好使用静态IP地址
        • 若通过域名访问WEB站点,需与DNS结合
        • 网页最好存储在NTFS分区内
      • Apache:Tomcat
        • Tomcat是一个Apache Software Foundation项目
        • Tomcat是一个长期存在的开源Java Servlet容器
        • 轻量级应用服务器,开源、稳定、资源占用小
      • Oracle:WebLogic
        • WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件。
        • WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。
        • 将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
      • IBM:WebSphere
        • WebSphere 是 IBM 的软件平台。
        • 它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。
        • WebSphere 提供了可靠、灵活和健壮的软件。
      • Nginx
        • Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的。
        • Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。
        • 其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
        • 国内使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

    8. URL概述

    • URL:Uniform Resource Locator的缩写
      • 唯一能识别Internet上具体的计算机、目录或文件夹位置的命名约定
      • 计算机通过统一资源定位符实现资源访问
    • 举例说明:
     
    

    比如: http://www.baidu.com/news/202104/newslist.jsp?page=6 http ---》协议 www.baidu.com ---》主机地址 /news/202104/newslist.jsp ---》目标资源地址 page=6 ---》传递的参数

    第2节 Web应用初体验

    1. Web应用程序

    • 最简单的Web应用程序其实就是一些HTML文件和其它的一些资源文件组成的集合
    • Web站点则可以包含多个Web应用程序。它们位于Internet上的一个服务器中,一个Web站点其实就对应着一个网络服务器(Web服务器).

    2. Web应用分类

    2.1 分类说明

    • 静态web资源
      • 供人们浏览时的数据始终是不变的;浏览器能直接看懂例如:html、jsp、jpg
    • 动态web资源
      • 供人们浏览的数据是由程序产生的,不同事件点访问web页面看到的内容各不相同;
      • 要先转换成html,再在浏览器显示;
      • java中,动态web开发技术统称为javaweb。例如:Servlet、jsp。

    2.2 分类对比

    • 静态web存在的缺点
      • Web页面无法动态更新,所有用户看到的都是同一个页面
      • 无法和数据库交互(数据无法持久化,用户无法交互)
    • 动态Web程序:
      • 优点:
        • web页面可以动态更新,所有用户看到的都是不同页面
        • 可以和数据库交互(数据可以持久化,用户可以交互)
      • 缺点:
        • 加入服务器的动态web资源出现了错误,需要重新编写后台程序,重新发布

    3. Java Web应用元素

    • Servlet、SpringMvc、SpringBoot等控制层
    • JSP、Freemaker等模板
    • 实用类
    • 静态文档例如HTML、图片等
    • 描述Web应用的信息

    4. Tomcat服务器

    4.1 Tomcat概述

    Tomcat是一个免费的开源代码的Servlet容器,属于轻量级应用服务器,是开发和调试JSP程序的首选;

    4.2 Tomcat下载

    下载地址:https://tomcat.apache.org/download-90.cgi

    4.3 Tomcat目录结构

    • /bin:存放各种平台下用于启动和停止Tomcat的脚本文件
    • /conf:存放Tomcat服务器的各种配置文件
    • /lib:存放Tomcat服务器所需的各种JAR文件
    • /logs:存放Tomcat的日志文件
    • /temp:Tomcat运行时用于存放临时文件
    • /webapps:当发布Web应用时,默认情况下会将Web应用的文件存放于此目录中
    • /work:Tomcat把由JSP生成的Servlet放于此目录下

    4.4 配置Tomcat

    • Tomcat目录解压或安装

    • 默认端口号:8080

    • 通过配置文件server.xml修改Tomcat端口号

     
    

    1.修改端口为8080,则访问地址是 http://localhost:8080/... 2.修改端口为8090,则访问地址是 http://localhost:8090/...

    5. 状态码介绍

    • 200:请求成功,浏览器会把响应体内容(通常是html)显示在浏览器中
    • 302:请求重定向,请求url会重定到另一个资源
    • 404:找不到资源
    • 500:服务器程序出错

    6. Web请求方式

    • GET方式:get方式请求参数跟在url后面,数据最多1K
    • Post方式:请求参数放在消息体中传输,相对安全,无数据量限制

    7. 部署Web项目

    • 部署静态网站

      • 编写index.html,放置到/webapps/ROOT目录下
       

      静态网站测试

      Hello,Tomcat!

    • 启动Tomcat

      • bin\startup.bat
      • 访问Tomcat主页:http://localhost:8080
    • 测试效果

    • 停止Tomcat

      • bin\shutdown.bat

    第3节 Web应用流行框架

    1. 框架技术

    • 简介:
      • 是一个应用程序的半成品
      • 提供可重用的公共结构
      • 按一定规则组织的一组组件
    • 分析优势:
      • 不用再考虑公共问题
      • 专心在业务实现上
      • 结构统一,易于学习、维护
      • 新手也可写出好程序

    2. 主流框架介绍

    框架名功能描述图标
    Struts2MVC设计模式的实现
    拦截器
    可变和可重用的标签

    HibernateORM,简化数据库操作
    DAO层

    Spring依赖注入容器 / AOP实现
    声明式事务
    简化Java EE应用
    黏合剂,将大家组装到一起

    SpringBoot是由Pivotal团队提供的全新框架
    设计目的是用来简化新Spring应用的初始搭建以及开发过程
    可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
    内嵌Tomcat或Jetty等Servlet容器;
    提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
    绝对没有代码生成,不需要XML配置。

    MyBatis半自动化的ORM实现
    DAO层
    动态SQL
    小巧灵活、简单易学

    MyBatisPlusMyBatis-Plus 是一个 MyBatis的增强工具。
    在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
    无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
    损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
    强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求.

  • 相关阅读:
    SRM供应商关系管理系统解决方案
    【离散化 二维差分】391. 完美矩形
    pgsql查询分组中某个字段最大或者最小的一条数据
    leetCode 376.摆动序列 动态规划 + 图解 + 状态转移
    python爬虫经典实例(二)
    SSM - Springboot - MyBatis-Plus 全栈体系(二十一)
    (云HIS)云医院管理系统源码 SaaS模式 B/S架构 基于云计算技术
    UVA 10271 佳佳的筷子 Chopsticks [DP的基本运用]
    Busco-真核生物为主基因组质量评估
    php笔记1
  • 原文地址:https://blog.csdn.net/a1234556667/article/details/126447072