20201029冯强

学习总结:

1 Tomcat 服务器

2 软件结构

网络中有很多的计算机,它们直接的信息交流,我们称之为:交互。 在互联网交互的过程的有两个非常

典型的交互方式——B/S 交互模型和C/S 交互模型。也称为B/S结构和C/S结构。

2.1 什么是C/S结构

C/S(Client/Server)结构,即客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两

端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。

C/S结构可以看做是胖客户端架构。客户端实现绝大多数的业务逻辑处理和界面展示,作为客户端的部

分需要承受很大的压力,充分利用客户端的资源,对客户机的要求较高。

与B/S结构相比较,C/S需要安装客户端。例如QQ属于C/S结构的软件。

2.2 什么是B/S结构

B/S(Browser/Server)即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化

或者改进的结构。在这种结构下,用户工作界面是通过www浏览器来实现。

B/S结构可以看作是瘦客户端,只是把显示的较少的逻辑交给了Web浏览器,事务逻辑数据处理在放在

了Server端,这样就避免了庞大的胖客户端,减少了客户端的压力。B/S结构的系统无需特别安装,只

有Web浏览器即可。

与C/S相比较,B/S不需要安装客户端,只需要浏览器即可。例如我们平时浏览的网站就是B/S结构的软

件。

2.3 相同点与不同点

相同点:

\1. 都是基于请求-响应交互模型,即:

浏览器(客户端) 向 服务器发送 一个 请求。

服务器 向 浏览器(客户端)回送 一个 响应 。

\2. 必须先有请求 再有响应

\3. 请求和响应成对出现

不同点:

\1. 实现C/S结构需要用户在自己的操作系统安装各种客户端软件(百度网盘、腾讯QQ等);实现B/S

结构,只需要用户在操作系统中安装浏览器即可。

在一定程度上,B/S结构可以理解为一个特殊的C/S结构

\2. B/S具有分布性特点,可以随时随地进行查询、浏览等业务处理。

\3. B/S升级维护便捷,无需升级多个客户端,升级服务器即可,就可以实现所有用户的同步更新。

JavaEE开发的应用软件属于B/S结构的软件,是以浏览器作为软件的呈现界面的。3 HTTP协议

大家在平时上网时,会在浏览器地址栏中输入网址来访问网页,例如输入Http://www.itlaobing.cn。而

输入的网址的前缀是Http协议。

Http是超文本传输协议(Http,HyperText Transfer Protocol),是一个基于请求与响应模式的、无状

态的、应用层的协议。它的作用是从www服务器传输超文本到本地浏览器,浏览器再解析超文本,将

解析后的超文本呈现成网页,供用户浏览。

通常,由Http客户端发起一个请求,请求到一个服务器指定的端口(默认是80端口)的TCP连接。Http

服务器则在那个端口监听客户端发送过来的请求。一旦收到请求,服务器向客户端发回一个状态行,比

如"HTTP/1.1 200 OK",和响应的消息,消息的消息体可能是请求的文件、错误消息、或者其它一些信

息。

通过Http或者Https协议请求的资源由统一资源标识符(URL)来标识

HTTPS(全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的

HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在

HTTP 的基础下加入SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。

HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统

提供了身份验证与加密通讯方法。现在它被广泛用于万维网上安全敏感的通讯,例如交易支付等

方面

HTTPS 协议是由 HTTP 加上 TLS/SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通

过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保

护。

3.1 HTTPSHTTP原理区别:

HTTPS 主要由两部分组成:HTTP + SSL / TLS,也就是在 HTTP 上又加了一层处理加密信息的模

块。服务端和客户端的信息传输都会通过 TLS 进行加密,所以传输的数据都是加密后的数据。

3.1.1 HTTP 原理

① 客户端的浏览器首先要通过网络与服务器建立连接,该连接是通过TCP 来完成的,一般 TCP 连

接的端口号是80。 建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标

识符(URL)、协议版本号,后边是 MIME 信息包括请求修饰符、客户机信息和许可内容 。

② 服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一

个成功或错误的代码,后边是 MIME 信息包括服务器信息、实体信息和可能的内容 。

3.1.2 HTTPS 原理

① 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器;

② 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户

端;该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机

数 ;

③ 客户端对服务器的证书进行验证(有关验证证书,可以参考数字签名),并抽取服务器的公用

密钥;然后,再产生一个称作 pre_master_secret 的随机密码串,并使用服务器的公用密钥对其

进行加密(参考非对称加 / 解密),并将加密后的信息发送给服务器 ;

④ 客户端与服务器端根据 pre_master_secret 以及客户端与服务器的随机数值独立计算出加密和

MAC密钥;⑤ 客户端将所有握手消息的 MAC 值发送给服务器;

⑥ 服务器将所有握手消息的 MAC 值发送给客户端

3.2 URL

在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource

Locator,统一资源定位符),它是WWW的统一资源定位标志,就是指网络地址。

URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。

也可认为由4部分组成:协议、主机、端口、路径

URL的一般语法格式为:

协议//服务器名称:端口号/路径/[文件名/参数名]?查询#fragment(信息片断)

3.3 Http协议的应用

互联网的数据传输底层依赖tcp协议,http协议架构在tcp协议之上,它规范了传输数据的内容和格式

3.4 浏览器查看浏览器与服务器通讯过程

接下来我们准备开始学习HTTP协议的具体内容,既然要学习内容,必然要先能看的具体的内容,这就

需要借助查看http协议内容的工具了,工具一般有两个:chrome(谷歌)、fifirefox(火狐)。我们以chrome

为例。

打开浏览器,按 F12 键或者 Ctrl + Shift + i ,在地址栏输入:https://www.baidu.com**4** WEB

4.1 WEB资源

4.1.1 静态资源

指web页面中供人们浏览的数据始终是不变。比如:HTML、CSS、JS、图片、音频、视频

4.1.2 动态资源

指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。 比

如:你在不同时间搜索微博的热门话题内容是不一样的,每天的天气情况也是变化的。这些数据由程序

生成,JSP/Servlet、ASP、PHP等技术都可以完成

总结:

静态资源的数据都是写死在页面上的固定不变。

动态资源浏览器访问的结果是变化的(动态web资源你的数据都是程序读取数据库、xml等文件生

成的数据)。

4.2 WEB容器

Web(World Wide Web)容器(Container)是一种服务程序,在服务器一个端口就有一个提供相应服务的

程序,而这个程序就是处理从客户端发出的请求,并向客户端作出响应。

也叫做服务器软件

4.2.1 作用

提供计算服务的设备,服务类型有很多,常见的有:游戏服务,购物服务,新闻服务等。

4.2.2 常见的WEB容器

Java Web(以浏览器为软件界面的应用程序称为Java Web)开发中涵盖了JSP、Servlet以及各种框架技

术,而这些技术开发的应用程序就需要运行在Web容器中。

\1. WebLogic

Oracle公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范。WebLogic是用于开发、集

成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。

\2. WebSphere

IBM公司的WebSphere,支持JavaEE规范。WebSphere 是随需应变的电子商务时代的最主要的软

件平台,可用于企业开发、部署和整合新一代的电子商务应用。

\3. Glass Fish

最早是Sun公司的产品,后来被Oracle收购,开源,中型服务器。

\4. JBoss

JBoss公司产品,开源,支持JavaEE规范,占用内存、硬盘小,安全性和性能高。

\5. Tomcat

中小型的应用系统,免费开源,支持JSP和Servlet。

我们学习和使用的是tomcat容器。

5 Tomcat

Tomcat基本概述:Tomcat服务器是一个免费的开放源代码的Web应用服务器。Tomcat是Apache软件基金会(Apache

SoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开

发而成。由于有了Sun的参与和支持,最新的Servlet 和JSP规范总是能在Tomcat中得到体现。

因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认

可,是目前比较流行的Web应用服务器。

5.1 下载安装

\1. 去 tomcat 官网,选择左侧 Download 下的 tomcat8 。如图:

选择相应 tomcat 版本下载:tar.gz 是 linux 操作系统下的安装版本

zip 是 windows 操作系统下的压缩版本(选这个版本)

Windows Service Installer 是 windows 操作系统下的 exe 安装版本

Apache Tomcat 8.5版本实现了Servlet 3.1、JavaServer Pages(JSP) 2.3、EL 3.0、WebSocket

1.1 等规范。

\2. 下载完成后,将文件解压到相应文件夹下存放

\3. 配置环境, Tomcat 运行依赖 java 环境所以配置了 java 环境后就可以直接使用 tomcat 。如果没

有配置 java 环境不能运行 tomcat 。

Apache Tomcat 8.5版本需要java7或更高版本的JRE

5.2 启动/关闭

5.2.1 启动tomcat

到 tomcat 目录下的 bin 目录,找到 startup.bat 文件,双击运行。启动成功界面:

启动成功后不要关闭此窗口

5.2.1.1 测试 tomcat 服务

打开浏览器在,在浏览器的地址栏中输入:

http://127.0.0.1:8080/

http://localhost:8080/**5.2.2 4.2.2** 关闭tomcat

\1. 直接关闭 tomcat 启动窗口

\2. tomcat 目录下 bin 目录,查找其中的 shutdown.bat 命令,双击关闭服务器

5.3 启动常见问题

5.3.1 无法启动(闪退:cmd命令窗口出现一下,就消失)

主要原因:没有配置JAVA_HOME环境变量。 JAVA_HOME 环境变量 中配置的是JDK的安装目录,不包

含bin目录,不是tomcat的安装目录。

闪退的原因查看:可以在 startup.bat 文件末尾书写 pause 命令。让运行的窗口暂停。

5.3.2 端口被占用导致启动失败如果启动的时候,发生异常问题,这时有可能是端口被占用。

Tomcat服务器在启动的时候默认占用本地的8080端口,如果这个端口被占用,启动的时候就会报错。

报错内容可以通过查询 tomcat 目录下的 logs 目录中 Catalina.当前系统年月日.log 文件查看,如下

图:

解决方式:

\1. 结束当前占用此端口的进程(之前讲过,使用 netstat -ano 命令,然后找到进程并结束掉)

\2. 修改 tomcat 端口

到 tomcat 目录下的 conf 目录( tomcat 的配置文件都在此文件夹下),找到 server.xml 文件,

打开。

server.xml:服务器端口配置、服务器自身配置文件将端口号修改为其他数值,如 8888 。修改完毕后保存,并重新启动 tomcat 后生效。

浏览器访问:http://localhost:8888

5.3.3 启动窗口乱码问题

在 tomcat/conf 目录下,找到 logging.properties 并打开,修改如下:

5.4 tomcat目录介绍

5.5 使用tomcat发布项目

5.5.1 webapps 下发布

将需要发布web项目或打包好的 war 包复制到 tomcat 的 webapps 目录下。然后启动 tomcat 就可以通

过浏览器访问了。

如: test 项目中有一个 hello.txt

hello.txt

Hello World!

1启动 tomcat 后可以通过浏览器访问:http://localhost:8080/test/hello.txt

5.5.2 使用虚拟路径发布

有两种方式:

\1. 配置 conf/server.xml

\2. 配置独立 xml 文件

5.5.2.1 配置 server.xml ,添加 context 标签

在· tomcat/conf/server.xml 中找到 节点,添加 标签,如图所示:

注意,如果 server.xml 配置出错会导致 tomcat 无法启动

然后在 tomcat/conf/web.xml 文件中找到 servlet 节点,修改如下:

重启 tomcat 服务后,浏览器访问: http://localhost:8080/fifiles


1

25.5.2.2 配置独立 xml 文件

在 tomcat/conf 目录下新建一个 Catalina 目录(如果已经存在无需创建)

在 Catalina 目录下创建 localhost 目录

在 localhost 中创建 xml 配置文件,名称为:abc.xml(注:这个名称是浏览器访问路径)

xml 的内容为:

保存后即可访问。

这种方式无需重启服务器自动加载和卸载项目

5.6 idea中配置tomcat

首先创建一个 web 项目,主要步骤如下:

1

2打开项目,点击右上角的 Add Configuration 。如图:

如果已经运行过程序的话,操作如下:在弹出见面中添加一个 tomcat 服务器(运行环境),操作如下:添加运行的项目回到 Server 选项,设置更新源码以上 tomcat 服务器就设置完成了。

5.6.1 测试

在项目下的 web 目录下有一个 index.jsp ,当我们启动成功的时候就会访问启动 tomcat

启动成功后,浏览器访问:http://localhost:8080/test/就能看到 index.jsp

标签

评论


© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1