Tomcat理论(Ⅰ)

目录

服务器流程图一览

一、JavaWeb前奏(了解)

[1. C/S结构](#1. C/S结构)

[2. B/S结构](#2. B/S结构)

[3. 静态网页&动态网页](#3. 静态网页&动态网页)

4.常见的网页

5.Web服务器

知名服务器:

​编辑

二、Tomcat安装(熟练)

1.Tomcat概述

2.Tomcat的作用

3.Tomcat安装

4.Tomcat测试

3.Tomcat分析(熟练)

1.Tomcat目录结构

2.Tomcat修改端口号

3.Tomcat结构重点


早在自搭建Tomcat(一)---Socket&ServerSocket-CSDN博客 这篇博客起,一共有六篇博客中详细阐述了手写搭建Tomcat的代码全过程,在此篇博客中讲解一下服务器的一些理论知识。

服务器流程图一览

首先上面是学习服务器理论知识的一份思维导图。

一、JavaWeb前奏(了解)

1. C/S结构

C/S 结构即客户端/服务器(Client/Server),例如QQ就是C/S结构的。我们每个 人电脑上都需要安装QQ的客户端,客户端软件向服务器端软件发送请求,服务器端给客户 端返回响应。

但是,因为客户端需要不断的更新,用户使用起来就比较麻烦。现在的C/S结构的客 户端已经好多了,可以提示用户更新,用户只需要点击更新就可以了。最早时需要用户自己 去官网上下载最新客户端,然后把老版本卸载,再去安装新版本。

2. B/S结构

B/S 结构即浏览器/服务器(Browser/Server) ,例如网站都是B/S结构的。当然, 网站也只是B/S结构体系软件中的一种而已。网上银行也都是B/S结构的!

B/S 结构的好处在于不需要用户更新客户端,客户端只需要有一个浏览器就OK。当软 件需要更新时,开发人员只需要关心服务器端就行。就像你在浏览器中访问百度时,发现百 度的主页发生了变化,但你也不需要更新什么。

3. 静态网页&动态网页

早期在Internet上都是静态网页,即html页面。静态网页的数据都是不能自动变 化的,例如网页上的当前用户信息:"欢迎XXX登录本系统",这说明当前用户名为XXX。 如果有其他用户登录系统就应该显示其他用户的名字,而且无需修改页面!说白一点,用户 名应该是变量,而不是常量!这是静态网页做不到的!

动态网页可以中包含变量,数据的变化就不是问题了(就比如将上面那个"欢迎XXX登录本系统"的例子连接上JDBC,并用cookie动态改变用户名,那么就是动态页面)。但动态网页只能在服务器端使用, 客户端浏览器只能识别静态网页。所以,如果用户请求的是动态网页,那么就需要服务器先 把动态网页转换成静态网页发送给客户端浏览器!

动态网页必须有服务器来处理。

4.常见的网页

  • 静态网页:

    • htm、html
  • 动态网页:

    • php、asp、aspx

    • jsp、.do、.action

我们要学习的是JSP(Javaserverpages),与其相关的是do(struts1)、action (struts2)

5.Web服务器

Web 服务器的作用是接收客户端的请求,给客户端作出响应。

知名服务器:

  • Tomcat (Apache):用来开发学习使用:免费,开源

  • JBoss (Redhat 红帽):

  • Weblogic (Oracle):要钱的!使用 Tomcat 开发,项目写完了,放到 Weblogic 上运行;

  • Websphere (IBM):要钱的!与 Weblogic 相似。

二、Tomcat安装(熟练)

1.Tomcat概述

Tomcat 服务器由Apache提供,开源免费。开发学习使用最佳选择。安装Tomcat 之前需要先安装JDK,其实无论哪一种JavaWeb服务器都需要先安装JDK。我们现在使用 的Tomcat版本可以是Tomcat8.5或Tomcat9。

Tomcat6 支持Servlet2.5;

Tomcat7,8,9 支持Servlet3.0;

2.Tomcat的作用

当用户通过发送过来一个请求(通常是浏览器请求)后,Tomcat来接收请求,然后给用户返回响应(通常会是HTML,或是文件、图片等)。

3.Tomcat安装

4.Tomcat测试

测试 Tomcat 需要在浏览器中输入:http://localhost:8080,或者是 http://127.0.0.1:8080。127.0.0.1 表示本机的IP地址,localhost表示本机的 主机名。

如果其他机器需要访问,那么要把localhost使用本机IP地址替换。

假如我的IP是192.168.1.100,你们要访问我机器上的Tomcat,那么需要在你们 的浏览器中访问:http://192.168.1.100:800

项目被访问到的必要条件 。

3.Tomcat分析(熟练)

1.Tomcat目录结构

有必要了解一下Tomcat的目录结构:
bin:该目录下存放的是可执行文件,有startup.bat和shutdown.bat文件, startup.bat 用来启动Tomcat,但需要先配置JAVA_HOME和shutdown.bat 用来停止Tomcat;

在此就引申出来一个问题:配置环境变量的意义?

  1. 提供灵活性和便捷性 :环境变量可以存储程序所需的配置信息,使得程序在运行时能够动态地获取资源路径(如bin目录)而无需硬编码固定的路径。这样,程序可以在不同的系统环境或场景下灵活运行,无需手动修改代码中的路径信息,从而实现随时随地的调用。

  2. 增强系统的安全性:通过环境变量管理配置信息,可以避免直接暴露敏感的系统路径或配置细节,从而在一定程度上保护系统的安全性和隐私性。

conf:这是一个非常非常重要的目录,这个目录下有三个最为重要的文件:

①server.xml

  • 功能:配置整个服务器的信息。
  • 用途 :例如,可以通过修改server.xml来设置服务器的端口号、定义虚拟主机、配置连接器(Connector)等。
  • 重要性:它是服务器的核心配置文件,决定了服务器的基本运行参数和架构。

②web.xml

  • 功能:部署描述符文件。
  • 用途:定义了Web应用程序的全局配置信息,包括Servlet映射、过滤器(Filter)、监听器(Listener)等。
  • MIME类型web.xml中还注册了许多MIME(Multipurpose Internet Mail Extensions)类型,这些类型用于说明文档的内容类型。

MIME( Multipurpose Internet Mail Extensions**)类型** 是一种用于标识文件类型和格式的网络标准。它通过一个字符串(如text/htmlimage/jpeg)告诉客户端(如浏览器)如何处理接收到的数据,例如显示网页、渲染图片或下载文件。MIME类型由类型 (如textimage)和子类型 (如htmljpeg)组成,广泛应用于Web开发和网络通信中,确保数据正确传输和解析。

③context.xml

  • 功能:定义上下文(Context)级别的配置。
  • 用途:用于配置特定Web应用程序的运行环境,例如资源链接(Resource Links)、环境变量(Environment Variables)等。
  • 重要性:它为每个Web应用程序提供了独立的配置选项,使得应用程序可以独立于服务器全局配置运行,增强了灵活性和可维护性。

lib:Tomcat的类库,里面是一大堆jar文件。如果需要添加Tomcat依赖的 jar 文件,可以把它放到这个目录中,当然也可以把项目依赖的jar文件放到这 个目录中,这个目录中的jar所有项目都可以共享之;

logs:这个目录中都是日志文件,记录了Tomcat启动和关闭的信息,如果启动 Tomcat 时有错误,那么异常也会记录在日志文件中。

temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除!

webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录 下已经存在了目录,那么都是tomcat自带的。项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。

work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的!可以把这个目录下的内容删除,再次运行时会生再次生成work目录。当 客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再 编译Java文件生成class文件,生成的java和class文件都会存放到这个目 录下。

LICENSE:许可证。

NOTICE:说明文件。

你应该已经发现,访问ROOT项目时无需给出项目名,其实localhost是一个主 机名,每个主机都会对应一个项目空间,localhost对应的就是Tomcat目录下的 webapps,每个项目空间都可以有一个名为ROOT项目,这个ROOT项目被访问时无需给出 项目名称。

2.Tomcat修改端口号

打开conf\server.xml(这里面存放着服务器配置信息)

http 默认端口号为80,也就是说在URL中不给出端口号时就表示使用80端口。当 然你也可以修改为其它端口号。修改之后必须重新启动服务器

80 端口是默认的端口,如果使用80端口访问时就可以省略端口。

如果我们改成80端口,访问时就可以不加端口号。http://localhost/

项目提供给其他同学访问的必要条件:

  1. 和其他同学在同一局域网内或本机在公网上有固定IP

  2. Web项目部署到tomcat后,如果使用80端口的话,需要进行公安部备案(百度搜索)
    引申问题:如何查看本机IP地址? 终端输入ipconfig查看 。

注:127.0.1和localhost代表本机,仅限于本机使用,如果想让其他人访问自己的电脑,需要用到IP地址。

3.Tomcat结构重点

bin、conf、webapps、work。

bin 目录中东西我们只关心启动和停止 Tomcat,现在大家也应该掌握了!

webapps 目录下存放的是项目,每个文件夹都对应一个项目,而且在访问项目时,其中包含了项目名,而项目名往往都对应项目目录名。这个也应该可以掌握了!还有就是 JavaEE Web 项目的目录结构,这个必须必须背下来!

work:这个东西有点小难度,现在只需要知道它存放的文件是通过 webapps 目录下的项目在运行时产生的,最终运行的都是 work 目录下的文件。这个目录下的东西可以删除,然后再次运行时还会产生!

上述就是有关Tomcat的相关理论知识。

相关推荐
二十七剑10 分钟前
jvm中各个参数的理解
java·jvm
东阳马生架构1 小时前
JUC并发—9.并发安全集合四
java·juc并发·并发安全的集合
anddddoooo1 小时前
域内证书维权
服务器·网络·网络协议·安全·网络安全·https·ssl
zhoupenghui1682 小时前
golang时间相关函数总结
服务器·前端·golang·time
计算机小白一个2 小时前
蓝桥杯 Java B 组之岛屿数量、二叉树路径和(区分DFS与回溯)
java·数据结构·算法·蓝桥杯
White graces2 小时前
正则表达式效验邮箱格式, 手机号格式, 密码长度
前端·spring boot·spring·正则表达式·java-ee·maven·intellij-idea
菠菠萝宝2 小时前
【Java八股文】10-数据结构与算法面试篇
java·开发语言·面试·红黑树·跳表·排序·lru
不会Hello World的小苗2 小时前
Java——链表(LinkedList)
java·开发语言·链表
努力的小T2 小时前
使用 Docker 部署 Apache Spark 集群教程
linux·运维·服务器·docker·容器·spark·云计算
Allen Bright3 小时前
【Java基础-46.3】Java泛型通配符详解:解锁类型安全的灵活编程
java·开发语言