【tomact教科书】JavaWeb之tomact服务器入门总结(专治tomact各种疑难杂症)
一、生活中的上网方式(BS、CS)
1.1 生活中的两种上网方式
一、可以通过浏览器(browser)进行上网,比如:访问浏览谷歌浏览器、火狐浏览器
二、可以通过客户端(client)进行上网,比如:下载淘宝客户端逛淘宝
1.2 BS、CS结构介绍
1.2.1 BS结构(Browser/Server )
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。
- 简单来说,如下:
- 不需要安装客户端,只要能连上网,就能随时随地使用
- 开发人员只需要对服务器端程序进行开发、维护,降低开发维护难度和开发维护成本
- 浏览器主要负责用户界面的动态展示,只处理一些简单的逻辑功能
- 所有具体业务逻辑的处理都由服务器端程序完成,所以程序负载几乎都转移给服务器端
- 但是随着服务器负载的增加,可以平滑地增加服务器的个数并建立集群服务器系统,然 后在各个服务器之间做负载均衡
- 以下图是BS结构的工作原理:
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配置
- 将下载好的tomact解压到一个盘的文件夹中
- 保证我们jdk是用JAVA_HOME形式配置的(tomact依赖jdk的这种形式);在tomcat的安装目录bin文件夹下的catalina.bat中使用了JAVA_HOME,所以,安装 tomcat必须要求系统配置中有JAVA_HOME,如果没有配置,执行startup.bat文件时会 出现闪退效果
- 端口号配置;tomcat默认使用的8080端口,可以进行端口号的修改,修改tomcat的端口号,在 tomcat\conf\server.xml文件, 可以添加80端口,80是http协议默认的端口
- 测试是否安装配置成功;在tomcat的安装目录下有一个bin目录 ,在目录中有一个startup.bat文件执行它。(窗口乱码无视即可)打开浏览器,在浏览器的地址栏上输入 http://localhost:8080。 会出现一个猫的界面,打开了即为成功,打不开不能访问页面则失败!
- 注意:在tomact安装路径下打开DOS命令窗口,输入startup.bat,按下Enter也可以启动服务器!
2.7 关于tomact地址问题
我们在使用tomact时会在浏览器地址栏中输入此内容:http://localhost:8080/(htttp协议://ip:端口号/资源名称)
而我们自己的ip地址可以通过DOS命令下键入ipconfig来查询本机ip地址。
三、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目录结构介绍
目录名称(文件夹) | 描述 |
---|---|
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文件 |
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目录下
二、访问步骤
- 先访问到tomcat容器:http://localhost:8080/
- 访问到项目:http://localhost:8080/dynamicproject/
- 访问到资源:http://localhost:8080/dynamicproject/a.jpg(输入地址即可访问a.jpg图片,举一反三访问txt、html)
- 注意事项:如果访问路径只写到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标签,如下:
三、重启服务器后,打开网页,地址栏输入http://localhost:8080/hello/a.txt即可访问项目中txt文件
6.4 部署方式三(推荐)
方式三:虚拟目录优化版
在tomcat/conf/Catalina/localhost下创建任意名称的一个xml文件,例如创建一个 good.xml文件,在good.xml中书写
<Context docBase="磁盘路径" />
这种方案配置,xml文件的名称就是访问路径,在浏览器中访问http://localhost/good就可以。
6.4.1 方式三的部署步骤和访问
一、将需要部署的项目(用的方式一的项目)放在你自己想放的路径中(D:\Code\dynamicproject)
二、找到tomcat\conf\Catalina\localhost目录,在目录下创建名为good.xml的配置文件。并写入内容如下:
<?xml version="1.0" encoding="UTF-8"?>
三、重启服务器后,打开网页,地址栏输入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
二、勾选并设置Web项目所需
三、下一步填写项目名称(这一步就不用我说了吧!),填写后点击Finsh完成创建!
四、创建完成!显示如下页面
7.2 idea中Web项目目录解析
首先我们看到的Web项目目录是以下模样
目录解析
目录名称 | 描述 |
---|---|
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文件并填写信息以便测试)
7.3.2 idea中配置tomact服务器
一、在idea中启动项中添加tomact服务器
二、输入Tomact服务器名称
三、双击src文件夹或者按照图下点击
四、将Web项目打包成war包(加入war包后你会发现多出来一个war包,点击OK)
五、你发现没为什么tomact左上角有一个红色的小叉号❌呢?是因为你没有指定要部署的文件也就是war包,那我们就添加了它!
六、设置自动更新(为了方便嘛,也可以不设置)
七、点击run按钮或者Debug按钮,开启服务器并部署项目
八、浏览器访问部署后的项目(启动服务器并部署成功后会默认弹出浏览器显示默认index.html)
九、试着访问一下我们项目中的demo文件(浏览器地址栏后追加demo即可!)
十、关闭服务器就不用说了吧,但是我还是说一下吧!(就是结束程序点击红色小方块或者快捷键Ctrl+F2)
八、tomact常见错误
8.1 tomact闪退问题
JAVA_HOME配置问题(解决:startup.bat中最后增加pause,查看错误信息)
8.2 浏览器错误代码404
找不到该路径部署项目文件(1.路径写错了 2.没有部署成功,重新部署一下)
8.3 浏览器错误代码500
配置文件全限定名错误(需要查看配置文件是否写正确,查出修改即可解决问题)
下一章HTTP内容,持续更新知识点总结…