Tomcat服务器
备注:该技术博客的内容是我根据技术视频整理与总结的(并非复制粘贴)。取自黑马JavaWeb课程。
一、概述
首先学习汤姆之前,我们应该先理解一个概念,什么是服务器?
服务器:安装了服务器软件的计算机。本质上还是一台电脑,不过这台电脑的性能非常好!一般作为服务器的电脑配置非常高。
服务器软件:接收用户的请求,处理请求,做出响应。
web服务器软件:它是服务器软件中的一种,也可以接收用户的请求,处理请求,做出响应。只不过web服务器软件让用户通过浏览器来访问的。
在web服务器软件中我们可以部署web项目,让用户通过浏览器访问这些项目。
由于动态资源不能直接运行,依赖于web服务器软件。也就是说,动态资源只能够运行在服务器软件中。所以web服务器有时候也被称为web容器。动态资源必须在容器中才能运行。
接下来介绍几种常见的与Java相关的web服务器软件:
-
webLogic:属于oracle公司,是大型的JavaEE服务器,支持所有的JavaEE规范,收费的。(JavaEE是java语言在企业级开发中使用的技术规范的总和,一共规定了13项大的规范)
-
webSphere:属于IBM公司,是大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
-
JBOSS:属于JBOSS公司,是大型的JavaEE服务器,支持所有的JavaEE规范,收费的。
-
Tomcat:属于Apache基金组织(慈善),是中小型的JavaEE服务器,仅仅支持少量的JavaEE规范。
该组织所有的产品都是开源免费的。为整个软件行业的发展做出了很大的贡献。该组织的生存是依靠于大型公司捐赠。
二、Tomcat服务器软件
我今天要学习和使用的web服务器软件是Tomcat(汤姆猫)。我要学习一款软件,第一件事当然是把它下载成功。
那么去哪里下载tomcat软件呢?我把他的官方网站告诉大家:https://tomcat.apache.org/
由于该网站是全英文的我们可能看不懂,不知道怎么下载。接下来我讲解一下如何下载:
1.首先我们进入网站后,直接看左侧一栏,有一个Download(下载) 英文单词:
2.这里有许多版本的汤姆猫,我使用的是Tomcat9,点击进入以下页面,将目光锁定到新页面的9.0.37:
3.由于我是window64位,所以我的选择是:
4.点击下载即可,下载完成后,怎么去安装这个压缩包呢?我们需要将下载好压缩包找一个位置复制一下。
复制完成后将该文件拖到当前的目录下就完成了。
了解目录结构:
一切准备就绪之后,我们应该深入理解一下它的目录结构:
- bin:是二进制(binary)的简写。里面存放的是可执行文件。
- conf(configure简写):里面存放的是配置文件。
- lib(依赖jar包):因为tomcat在启动运行时,需要依赖于一些jar包才可以运行。
- logs(日志文件):可以通过日志文件监控调试程序。(由于目前tomcat没有启动过,所以目录中还没有日志)
- temp(临时文件):存放一些临时文件数据的。(不常用)
- webapps(重要):存放web项目。
- work:存放运行时的数据。
启动tomcat:
启动路线是:进入bin文件夹——>启动startup.bat文件,会出现一下画面:
接下来就可以访问tomcat了。我们上面说过,tomcat是web服务器软件,可以通过浏览器来访问项目。我们就可以打开浏览器访问自己,浏览器中输入:IP地址:8080 或者 localhost:8080进入。
出现这个页面就说明我们成功的安装了tomcat。
刚刚我们完成了自己访问自己,但是tomcat这个web服务器软件可以让别人访问我(当然你也可以访问别人),访问者就需要使用我的ip地址访问。查询ip地址的方式是:
打开doc命令框(win + R),输入ipconfig,回车,IPv4地址就是本机的ip地址:
别人就可以通过你的ip地址:8080访问你的电脑上的tomcat。
关闭Tomcat:
- 正常关闭(推荐):bin目录/双击shutdown.bat 或者 Ctrl + C
- 强制关闭(不推荐):点击启动窗口的×
可能遇到的问题:
- java环境变量没有配置
- 闪退问题:需要配置兼容性
- 乱码问题:配置文件中设置
如何配置(重要):
部署项目的方式(第三种最推荐,作为开发者会第一种就可以了):
1.直接将项目文件(例如文件名叫hello,里面存放一个html文件名为hello.html)放到webapps目录下即可。我们启动Tomcat,(双击startup.bat)我们可以通过浏览器输入localhost:8080/hello/hello.html就可以访问。
/hello:项目的访问路径(虚拟目录)
/hello.html:资源名称
简化部署:有一个hello的项目文件,里面有许多文件,拷贝过程中非常慢。我们可以将项目打成war包,再将war包放置到webapps目录下。war包会自动的解压缩。
缺点:部署项目的时候,虚拟目录的名字与项目名称一样。而且还得拷贝项目到webapps目录下面,不管是打war包还是复制文件夹,最后都需要拷贝。那么我们不拷贝的情况下能否完成部署呢?接下来这个方法可以解决。
2.配置conf/sever.xml文件。在host标签体中配置:
<Context docBase="D:\Tomcat\hello" path="/hehe" />
其中docBase是项目存放的路径,path是虚拟目录。
缺点:由于配置文件sever.xml(Tomcat核心配置文件)是配置Tomcat整体的,现在在这个文件中部署项目的话,有可能将tomcat整个核心文件配置毁坏,其他项目因此也运行不起来。所以这样配置很不安全。
3.在conf\Catalina\localhost创建任意名称的xml文件。在文件中去编写:
<Context docBase="D:\Tomcat\hello"/>
现在它的虚拟目录就是xml文件的名称。
三、静态项目和动态项目
区别:静态项目中只能放静态资源:html,css,js,图片,文本,音频,视频…
动态项目中不仅可以放静态资源还可以放动态资源:servlet,jsp,php…
目录结构:对于java的动态项目的目录结构来说,java动态项目的目录结构为:
项目的根目录:
WEB-INF目录:
web.xml:web项目的核心配置文件
classes目录:放置字节码文件的目录
lib目录:放置依赖的jar包
注意:有WEB-INF的项目是动态项目。
四、与IDEA集成和创建web项目
接下来将Tomcat集成到IDEA中,并且创建JavaEE的项目。
目前我们每一次在本地启动Tomcat很麻烦,所以我们可以借助IDEA启动,关闭,发布。
那么怎么与IDEA集成呢?
1.打开IDEA,在导航栏找到Run,点击Edit Configurations。
点击完成之后,找到这个按钮点击。
点完之后会出现Tomcat Server框弹出(如下图),在Tomcat Home中选择你的电脑中Tomcat的安装路径后一路ok即可,这样Tomcat就集成到我们的IDEA中。
一般Tomcat启动伴随着web项目的启动,所以我们的Tomcat中应该部署一个web项目再运行才有意义。接下来我们创建一个web项目:
首先点击创建一个模块,如下图所示:
然后按照以下操作进行:
最后给项目命名后完成。
我们编写和运行一下WEB-INF文件下的index.jsp文件发现跟html页面没什么区别,可以运行。
运行结果是:Hello Tomcat
当我们再web下创建一个html页面,运行时候发现报错(HTTP Status 404–Not Found)。该html没有被加载到。
那么该怎么办呢?
我们需要重新启动一下服务器(等会说热部署,可以解决这个问题)。启动完成之后再来访问hello.html就可以成功。
其中index.jsp就是默认的首页。
热部署步骤:按下图进行操作
这样选择后,当我们更新资源的时候就让它重新部署项目,这样就可以创建一个html项目就直接部署了,不需要再重写服务器了,非常方便。比如:
我们创建一个hehe.html文件就可以发现直接可以访问,不需要重新启动服务器。非常的方便!