目录
服务器流程图一览
一、JavaWeb前奏(了解)
1. C/S结构
2. B/S结构
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;
在此就引申出来一个问题:配置环境变量的意义?
提供灵活性和便捷性:环境变量可以存储程序所需的配置信息,使得程序在运行时能够动态地获取资源路径(如
bin
目录)而无需硬编码固定的路径。这样,程序可以在不同的系统环境或场景下灵活运行,无需手动修改代码中的路径信息,从而实现随时随地的调用。增强系统的安全性:通过环境变量管理配置信息,可以避免直接暴露敏感的系统路径或配置细节,从而在一定程度上保护系统的安全性和隐私性。
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/html
、image/jpeg
)告诉客户端(如浏览器)如何处理接收到的数据,例如显示网页、渲染图片或下载文件。MIME类型由类型(如text
、image
)和子类型(如html
、jpeg
)组成,广泛应用于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的相关理论知识。