欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

程序员文章站 2022-04-24 12:38:30
...

一、生活中的上网方式(BS、CS)

1.1 生活中的两种上网方式

一、可以通过浏览器(browser)进行上网,比如:访问浏览谷歌浏览器、火狐浏览器

二、可以通过客户端(client)进行上网,比如:下载淘宝客户端逛淘宝

1.2 BS、CS结构介绍

1.2.1 BS结构(Browser/Server )

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Netscape NavigatorInternet Explorer服务器安装SQL ServerOracleMYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。

  • 简单来说,如下:
  • 不需要安装客户端,只要能连上网,就能随时随地使用
  • 开发人员只需要对服务器端程序进行开发、维护,降低开发维护难度和开发维护成本
  • 浏览器主要负责用户界面的动态展示,只处理一些简单的逻辑功能
  • 所有具体业务逻辑的处理都由服务器端程序完成,所以程序负载几乎都转移给服务器端
  • 但是随着服务器负载的增加,可以平滑地增加服务器的个数并建立集群服务器系统,然 后在各个服务器之间做负载均衡
  • 以下图是BS结构的工作原理:

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

1.2.2 CS结构(Client/Server )

C/S结构(Client/Server,服务器/客户机模式),C/S结构通常采取两层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。 客户机通过局域网与服务器相连,接受用户的请求,并通过网络向服务器提出请求,对数据库进行操作。服务器接受客户机的请求,将数据提交给客户机,客户机将数据进行计算并将结果呈现给用户。服务器还要提供完善安全保护及对数据完整性的处理等操作,并允许多个客户机同时访问服务器,这就对服务器的硬件处理数据能力提出了很高的要求。

  • 简单来说,如下:
  • 将应用程序分为客户端和服务器端两层,客户端程序用于展示功能,为用户提供操作界 面,同时也可以进行业务逻辑的处理;而服务器端程序负责操作数据库完成数据处理等 核心业务
  • 由此可见通过C/S开发模型开发的应用程序,客户端程序可以承担一部分业务逻辑处 理,特别是数据的预处理工作,减轻了服务器端程序的压力
1.2.3 BS、CS总结
  • BS优缺点:
    • 优点:实时地更新数据(新功能的增加只需要在服务端完成,浏览器刷新就好了)
    • 缺点:将负载给了服务器
  • CS优缺点:
    • 优点:客户端也分担了一部分负载
    • 缺点:如果有新的功能增加,必须要重新下载客户端

二、Web服务器

2.1 什么是服务器

服务器服务器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力,服务器适用于哪方面。例如网站建设、游戏开发等都需要服务器。

从广义上讲,服务器是指网络中能对其它机器提供某些服务的计算机系统。从狭义上讲,服务器是专指某些高性能计算机,能通过网络,对外提供服务。相对于普通PC来说,稳定性、安全性、性能等方面都要求更高,因此在CPU、芯片组、内存、磁盘系统、网络等硬件和普通PC有所不同。

对于服务器通俗易懂的两种概念。第一种就是一台电脑,第二种指的是在电脑上安装了一个服务器软件,这时我们也管这台电脑叫做服务器。

2.2 服务器的作用

作用: 服务器应具备承担服务并且保障服务的能力。能够让本地电脑中的资源可以被其他的电脑访问(通俗易懂)

2.3 常见的JavaWeb服务器

服务器名称 描述
WebLogic 美国Oracle公司的基于JAVAEE架构的中间件,用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器(收费)
Websphere IBM公司的一个大型的全面支持JAVAEE规范的JAVAEE容器
tomcat 开源的免费的servlet规范的服务器。 它是apache一个Web服务器
Jboss hibernate公司产品,不是开源免费的,是javaee规范的容器
Nginx Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理服务器

2.4 tomact介绍

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML标准通用标记语言下的一个应用)页面的访问请求。

2.5 tomact的下载

对于tomact来说,我们常用的版本只有7.0和8.5版本,而7.0版本存在问题,所有我们下载8.5版本

tomact8.5官网下载地址:https://tomcat.apache.org/download-80.cgi(下载解压即可)

2.6 tomact配置

  1. 将下载好的tomact解压到一个盘的文件夹中
  2. 保证我们jdk是用JAVA_HOME形式配置的(tomact依赖jdk的这种形式);在tomcat的安装目录bin文件夹下的catalina.bat中使用了JAVA_HOME,所以,安装 tomcat必须要求系统配置中有JAVA_HOME,如果没有配置,执行startup.bat文件时会 出现闪退效果
  3. 端口号配置;tomcat默认使用的8080端口,可以进行端口号的修改,修改tomcat的端口号,在 tomcat\conf\server.xml文件, 可以添加80端口,80是http协议默认的端口
  4. 测试是否安装配置成功;在tomcat的安装目录下有一个bin目录 ,在目录中有一个startup.bat文件执行它。(窗口乱码无视即可)打开浏览器,在浏览器的地址栏上输入 http://localhost:8080。 会出现一个猫的界面,打开了即为成功,打不开不能访问页面则失败!
  5. 注意:在tomact安装路径下打开DOS命令窗口,输入startup.bat,按下Enter也可以启动服务器!

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

2.7 关于tomact地址问题

我们在使用tomact时会在浏览器地址栏中输入此内容:http://localhost:8080/(htttp协议://ip:端口号/资源名称)

而我们自己的ip地址可以通过DOS命令下键入ipconfig来查询本机ip地址。

注意:loaclhost是默认本机ip(本地回路地址),所以我们在使用自己电脑的时候常用localhost。关于tomact端口那就是默认端口号8080了!但我们要知道此端口号不是固定写死的,所以在下面章节的知识内会简单的讲到如何修改端口。但是我们还是不推荐这么做的,因为会引起很多问题!

三、Web服务器相关概念

3.1 什么是Web

Web指的就是网页,我们所说的Web指的是Internet主机(服务器)上的供外界访问的资源

3.2 Web资源介绍

Web资源可以分为两种:静态web资源、动态web资源

3.3 静态Web资源介绍

指web页面上供人们浏览的数据,它们始终不变。例如html

  • 优点:
    • 静态网站开发简易,只需要掌握HTML、CSS和JSP就可以开发
    • 静态访问速度快,因为静态网页不需要和任何程序进行交互,更不需要对数据进行处理
  • 缺点:
    • 静态网站内容无法实时更新,因为网站由一个个的静态HTML网页构成,新增内容只能 通过开发人员修改代码
    • 网站内容过多时,每个页面都需要单独制作,需要不断编写和维护HTML页面,增加了 网站开发人员的工作量,提高了运营费用
  • 总结:静态的web资源,只是供人们浏览
3.3.1 静态Web资源项目介绍

Web静态项目包含都是静态资源:html、js、css、图片、音频等等(一个静态web项目,肯定都是静态资源)

3.4 动态Web资源介绍

指Web页面中内容是由程序产生的,供人们浏览,并且在不同的时间点,数据不一样,并且 还可以实现人与人之间的交互。用到Servlet和JSP等技术

  • 优点:
    • 维护方便、可以根据用户需求实现各种功能
    • 查询信息方便,能存储大量数据,需要时能立即查询
    • 网站内容可以实时动态更新
    • 与用户交互性强,提高用户粘性
  • 缺点:
    • 技术要求高
  • 总结:动态的web资源,可以实现交互
3.4.1 动态Web资源项目介绍

一个动态web项目,可以有静态资源(html、js、css、图片、音频等等),可以有动态资源, 必须有WEB-INF文件夹及web.xml

四、tomact目录结构

4.1 tomact目录结构介绍

注意:我们的动态Web资源项目可以放在webapps文件夹中进行部署的!

目录名称(文件夹) 描述
bin 存放tomact的可执行文件,比如:startup.bat(用来启动服务)
conf tomact的配置文件,比如:server.xml
lib tomact运行时所依赖的核心jar包,比如:jsp-api.jar、servlet-api.jar
logs 存放tomact执行日志
temp 存放临时文件
webapps 存放部署Web资源
work 存放jsp转义之后的java文件

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

4.2 tomact目录详解(初级面试题)

bin: 该目录下存放的是二进制可执行文件,如果是安装版,那么这个目录下会有两个exe文件:tomcat9.exe、tomcat9w.exe,前者是在控制台下启动Tomcat,后者是弹出UGI窗口启动Tomcat;如果是解压版,那么会有startup.bat和shutdown.bat文件,startup.bat用来启动Tomcat,但需要JDK的配置,shutdawn.bat用来停止Tomcat;

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

server.xml: 配置整个服务器信息。例如修改端口号,添加虚拟主机等;

tomcatusers.xml: 存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。可以按着该文件中的注释信息添加tomcat用户,然后就可以在Tomcat主页中进入Tomcat Manager页面了;

web.xml: 部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的!

context.xml: 对所有应用的统一配置,通常我们不会去配置它。

lib: Tomcat的类库,里面是一大堆jar文件。如果需要添加Tomcat依赖的jar文件,可以把它放到这个目录中,当然也可以把应用依赖的jar文件放到这个目录中,这个目录中的jar所有项目都可以共享之,但这样你的应用放到其他Tomcat下时就不能再共享这个目录下的Jar包了,所以建议只把Tomcat需要的Jar包放到这个目录下;

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

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

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

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

LICENSE: 许可证。

NOTICE: 说明文件。

五、Web项目相关问题

  • 问题一:Web应用程序的基本目录结构?

    • web静态项目
      • html、js、css、图片…
    • web动态项目
      • html、js、css、图片…
      • WEB-INF文件夹、web.xml文件(核心)
  • 问题二:web.xml文件中应该有什么内容?

    • tomcat\webapps\ROOT包下的web.xml文件是tomact的页面配置

    • 我们前期可以将tomcat\webapps\ROOT应用下的web.xml文件内容复制到我们自己的web.xml文件中使用

  • 问题三:如何设置工程的默认访问页面?

    • 在tomcat\conf\web.xml文件,将这个文件理解成是我们所有的tomcat下的web应用程序 中的web.xml文件的父类文件。
    • 在这段声明就规定了web应用中哪些文件是默认被访问的。如果我们在自己项目的web.xml 文件中将上述内容覆盖了,就可以设置自己项目的默认访问页面。

六、tomcat部署web应用程序

6.1 tomact部署web应用程序方式

部署方式
一、直接将web应用程序放置到webapps目录
二、虚拟目录初级版
三、 虚拟目录优化版

注意:我们在部署的时候,只要修改一次文件、文件路径或xml配置就需要关闭当前启动的服务器(黑窗口),重新启动!

6.2 部署方式一

方式一:直接将web应用程序放置到webapps目录

直接将一个web应用程序放置在tomcat/webapps目录下。这时web应用程序目录名称就是 我们访问tomcat下的这个应用程序的名称

6.2.1 方式一的部署步骤和访问

一、将需要部署的项目(dynamicproject:复制的tomact项目中WEB-INF\xml、随便拉了个图片和内容)放在webapps目录下

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

二、访问步骤

  1. 先访问到tomcat容器:http://localhost:8080/
  2. 访问到项目:http://localhost:8080/dynamicproject/
  3. 访问到资源:http://localhost:8080/dynamicproject/a.jpg(输入地址即可访问a.jpg图片,举一反三访问txt、html)
  4. 注意事项:如果访问路径只写到http://localhost:8080/dynamicproject/,默认访问index开头的html文件或jsp文件…

6.3 部署方式二

方式二:虚拟目录初级版

将一个不在tomcat下的web应用程序部署加载。可以在tomcat\conf\server.xml文件中配 置,在server.xml文件中的标签中添加一段配置

<Context docBase="磁盘路径" path="/项目的访问名称" />

经过以上配置后,在浏览器上可以输入http://localhost/hello来访问。但是,在tomcat6以后已经不建议使用了。改动了tomcat的server.xml文件,一旦出错,tomcat容器就炸了! 会有大麻烦的!让你吃不了兜着走!

6.3.1 方式二的部署步骤和访问

一、将需要部署的项目(用的方式一的项目)放在你自己想放的路径中(D:\Code\dynamicproject)

二、找到该tomcat\conf\server.xml文件,在HOST标签内加入Context标签,如下:

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

三、重启服务器后,打开网页,地址栏输入http://localhost:8080/hello/a.txt即可访问项目中txt文件

6.4 部署方式三(推荐)

方式三:虚拟目录优化版

在tomcat/conf/Catalina/localhost下创建任意名称的一个xml文件,例如创建一个 good.xml文件,在good.xml中书写

<Context docBase="磁盘路径" />

这种方案配置,xml文件的名称就是访问路径,在浏览器中访问http://localhost/good就可以。

注意:只需要写入一个docBase即可

6.4.1 方式三的部署步骤和访问

一、将需要部署的项目(用的方式一的项目)放在你自己想放的路径中(D:\Code\dynamicproject)

二、找到tomcat\conf\Catalina\localhost目录,在目录下创建名为good.xml的配置文件。并写入内容如下:

注意:先写入xml头文件

<?xml version="1.0" encoding="UTF-8"?>

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

三、重启服务器后,打开网页,地址栏输入http://localhost:8080/good/即可访问项目中默认的index.html网页

注意:这时候访问地址就变成了xml文件名称了,此例子中变为了good。举一反三,good/a.txt即可访问文本

6.5 Web动态项目的相关配置

问题:默认Web访问地址http://localhost:8080/dynamicproject为什么默认访问index.html或index.jsp呢?(http://localhost:8080/dynamicproject/index.html、http://localhost:8080/dynamicproject/index.jsp)

查看tomact安装目录:tomact\conf\web.xml文件,打开xml文件展示出的信息如下:

	<welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

上述配置代码,是设置tomcat容器中的每个项目的默认页面是index.html、index.htm、index.jsp。所以,自定义的web项目也部署到tomcat容器中,那么就会遵守上述规定!如果我们不想遵守这个规定怎么办呢?答案那就是需要修改xml文件了!

6.5.1 修改默认xml访问配置方式一

方式一:直接修改tomcat中的web.xml(即:tomact\conf内包含的web.xml)

	<welcome-file-list>
        <welcome-file>demo.html</welcome-file>
        <welcome-file>demo.htm</welcome-file>
        <welcome-file>demo.jsp</welcome-file>
    </welcome-file-list>

注意:我把默认访问文件改为了以demo为名的.html\.htm\.jsp文件,这时候我们的项目中就需要有以demo为名的.html\.htm\.jsp文件才可以被默认访问。

但是这样处理存在问题,所有的项目的欢迎页面都会跟随改变!这时候又引申出了一种方式,那么你就别愣着了,去看6.5.2吧!

6.5.2 修改默认xml访问配置方式二

方式二:直接修改项目自带的web.xml(即:每一个web动态项目的WEB-INF内包含的web.xml)

	<welcome-file-list>
        <welcome-file>demo.html</welcome-file>
        <welcome-file>demo.htm</welcome-file>
        <welcome-file>demo.jsp</welcome-file>
    </welcome-file-list>

注意:方式二修改的web.xml文件是随着项目携带的那个xml文件,所以以上配置仅针对当前项目有效!

6.5.3 项目中WEB-INF\web.xml和tomact\conf\web.xml的关系

两者的关系类似于java中的继承关系(父子关系),如果tomcat中的web.xml的配置无法满足当前的项目的需求,那么就可以更改项目中的web.xml,覆盖tomcat中的web.xml配置。为项目的部署带来的便捷!

Java中父子类继承关系回顾:子父类中的方法重写即是父类的方法中的功能无法满足子类的需求,就需要进行方法重写!(两者xml关系同理)

七、在idea下开发Web应用

7.1 idea中创建Web项目教程

一、创建idea新项目Create New Project

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

二、勾选并设置Web项目所需

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

三、下一步填写项目名称(这一步就不用我说了吧!),填写后点击Finsh完成创建!

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

四、创建完成!显示如下页面

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

7.2 idea中Web项目目录解析

首先我们看到的Web项目目录是以下模样

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

目录解析

目录名称 描述
firstweb 项目名称
src 储存java代码的目录
web 存放web资源的目录,比如:html、js、css、图片、jsp等文件
WEB-INF 存放java文件转译之后的class文件
out(目前没有) out文件是在你打开tomact服务器后生成的out目录,主要存放服务器部署后的文件
External Libraries 存放jre、tomact环境(环境里携带所有jar包)

7.3 idea中配置并部署tomact服务器

7.3.1 在Web项目中加入静态资源

我们需要在idea中的web文件夹加入并部署一些静态资源,以便部署成功后访问(我这里加入index.html、demo文件并填写信息以便测试)

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

7.3.2 idea中配置tomact服务器

一、在idea中启动项中添加tomact服务器

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

二、输入Tomact服务器名称

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

三、双击src文件夹或者按照图下点击

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

四、将Web项目打包成war包(加入war包后你会发现多出来一个war包,点击OK)

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

五、你发现没为什么tomact左上角有一个红色的小叉号❌呢?是因为你没有指定要部署的文件也就是war包,那我们就添加了它!

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

六、设置自动更新(为了方便嘛,也可以不设置)

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

七、点击run按钮或者Debug按钮,开启服务器并部署项目

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

八、浏览器访问部署后的项目(启动服务器并部署成功后会默认弹出浏览器显示默认index.html)

【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)

九、试着访问一下我们项目中的demo文件(浏览器地址栏后追加demo即可!)

十、关闭服务器就不用说了吧,但是我还是说一下吧!(就是结束程序点击红色小方块或者快捷键Ctrl+F2)

八、tomact常见错误

8.1 tomact闪退问题

JAVA_HOME配置问题(解决:startup.bat中最后增加pause,查看错误信息)

8.2 浏览器错误代码404

找不到该路径部署项目文件(1.路径写错了 2.没有部署成功,重新部署一下)

8.3 浏览器错误代码500

配置文件全限定名错误(需要查看配置文件是否写正确,查出修改即可解决问题)


下一章HTTP内容,持续更新知识点总结…