文章目录
- 一、什么是Tomcat
- 二、如何使用 Tomcat
- (1)下载安装
- (2)认识 Tomcat 目录
- (3)启动Tomcat
- (4)访问 Tomcat
- (5)给 Tomcat 部署一个简单的 webapp
- (6)打开部署的webapp
- 三、IDEA 集成Tomcat
- 3.1 使用场景
- 3.2 如何安装插件:
- 3.3 配置 Tomcat
- 3.4 检验 -----> 确认你的webapp是否被正确加载
一、什么是Tomcat
Tomcat 是一个 Http服务器,里面帮助我们部署了许多网站
- Tomcat 是Java圈子中广泛使用的 HTTP 服务器(HTTP 服务器有很多种,Nginx是各个领域中最知名的,但是由于Tomcat相比于Nginx可以更好地与Java适配,故Java圈子中多用Tomcat)
- Tomcat 是一个 webapp 的容器
- 容器是一个很宽泛的概念,叫容器的有很多
- webapp 是指的是网站(由后端代码 + 前端代码构成),同时一个 Tomcat 服务器上可以部署多个网站
- Servlet 就是依赖 Tomcat 运行的
- 默认端口:Tomcat 有两个默认端口,一个是8080,一个是8005。一个服务器运行时,可以绑定多个端口
- 8080:业务端口,负责正常接收http请求
- 8005:管理端口,负责进行一些管理上的操作,如远程控制 Tomcat 关闭等
- 功能:
- 部署网站
- 提供了一系列API接口(被Tomcat取名为Servlet),供程序员调用,以便更快速地编写Java代码。需要注意的是,Servlet其实已经是一个比较原始的API了,现在已经逐渐被Spring取代了。
二、如何使用 Tomcat
(1)下载安装
下载地址 — 官网 Apache Tomcat
-
关于 Apache:
-
起源:
(1)最开始是一个开源的 HTTP 服务器,因为做得很好,逐渐吸引了一大批开源开发者,他们在一起构建了一个社区,这个社区也被命名为Apache。所以 Apache 既可以指 一个HTTP服务器,又可以指一个社区名。(2)Tomcat 就是Apache 社区下一个开源的HTTP服务器。当然,除了Tomcat,该社区还有开发了许多程序
-
既然都是HTTP服务器,为什么不用 Apache 而是用 Tomcat:
Apache 服务器不支持Java开发,Tomcat则支持
-
-
下载操作:
- 版本:大版本选择 Tomcat8,小版本无所谓
- 压缩包:选择 zip压缩包,解压缩后能直接用(把包删掉就是卸载掉这个软件了)
-
关于 Tomcat 的跨平台性:
Tomcat 自身就是用Java写的,这使得它可以在任何安装了 Java 运行时环境(JRE)或 Java 开发工具包(JDK)的平台上运行,即实现了跨平台
-
注意点:
因为 Tomcat 是使用Java编写的,所以要想运行Tomcat,电脑上必须要有JDK
(2)认识 Tomcat 目录
-
bin:binary(二进制),一般是可执行程序。该文件夹里面有一些jar包和脚本文件。
-
conf:放 Tomcat 的配置文件
- server.xml:最主要的配置文件,描述了Tomcat服务器默认端口等信息。
配置文件又很多种格式:ini、yaml、propetry、xml等,这里Tomcat选用了xml作为其配置文件
- server.xml:最主要的配置文件,描述了Tomcat服务器默认端口等信息。
-
lib:Tomcat 运行时依赖的一些库,里面全是 jar 包
-
logs:放Tomcat的日志文件,后续调试 Tomcat 程序要用
-
temp:临时文件夹,目前不用关心
-
webapps:放网站的
一个Tomcat服务器上可以有多个网站,我们把写好并打包好的网站代码放到该目录下,就能加载运行该网站了
(3)启动Tomcat
-
如何启动Tomcat:双击startup.bat文件,如果命令行最后会出现【start server startup in XXXms】,此时,就表示Tomcat服务器正常启动了
-
关于启动多个Tomcat:一台机器上,默认情况是无法启动多个Tomcat的,这是因为默认端口号已经被占用了。如果想启动多个,只需要更改端口号即可,但Tomcat本身可以部署多个网站,所以一般,我们启动一个Tomcat即可。
-
什么是服务器:
服务器主机和服务器程序都可以叫“服务器”- 服务器程序:一个程序绑定了一个端口号,客户端就可以通过IP+端口号的方式给服务器发请求了。Tomcat 和 Mysql都是一个服务器程序。
- 服务器主机:一个电脑一直开机且上面一直运行一个服务器程序
- 服务器的作用:接收客户端发来的请求,返回响应,即给客户端提供服务。HTTP 服务器的客户端就是浏览器。
-
关于黑框服务器:
服务器一般都是这样的,没有“图形化界面”,就是一个控制台程序 -
关于乱码问题:
- 原因:Tomcat 使用utf8编码,Windows 的 cmd 程序则默认使用 gbk
- 解决方法:
- (1)更改 Tomcat 字符集 --------->不推荐,目前Tomcat主流编码方式还是utf8
- (2)更改 Windows 的 cmd 字符集 --------->改不了
- (3)使用IDEA的终端来展示Tomcat日志 --------->优解,因为IDEA默认是utf8编码,此时就可以避免乱码
-
闪退问题:大多是因为没有找到JDK路径
-
首先,我们要明确报错的信息是什么,把startup文件拖到cmd中执行,就可以解决出错闪退看不到报错信息的问题了、
-
如果是找不到JDK路径,我们就需要去配置对应的环境变量
- CATALINA_HOME ---- > Tomcat 自己的路径
- JAVAHOME---- > JDK 路径
-
-
什么是环境变量:
- 环境变量是操作系统维护的一种变量,当多个进程相互配合,需要进行一些数据上的交互上时可以使用该变量(本质上可以理解为是一种进程间通信的手段)
- 环境变量分为用户变量和系统变量。用户变量给当前这台计算机的用户使用,系统变量则是给所有用户使用,但是由于现在计算机的普及,一台计算机一般都由一个用户使用,所以写哪都没差
(4)访问 Tomcat
浏览器输入【127.0.0.1:8080】,就会显示 Tomcat 的欢迎页面
(5)给 Tomcat 部署一个简单的 webapp
- 搞一个HTML文件将其放到webapps目录下
- 如果是放在ROOT目录下,可以直接放文件/把文件放创建的文件夹里
- 如果是放在 webapps 目录下,只能创建文件夹
- 放完之后要重启Tomcat,否则Tomcat不知道你部署了一个新文件
(6)打开部署的webapp
-
方法:
- 双击:直接双击html文件就可以打开,但这是浏览器通过本地的文件资源管理器直接访问磁盘文件,然后打开的,未涉及Tomcat
- 通过Tomcat网络访问:浏览器输入地址访问
-
区别:
第二种方法可以让别的电脑也能访问到该页面(实现跨主机) -
关于网络访问方式的理解:
(1)根据NAT机制,如果不是一个局域网是无法直接访问的,我们此时需要借助一个拥有外网IP的设备,这里使用云服务器。我们只要在云服务器上下载Tomcat,再把网站部署到上面即可 --------> 42.192.83.143:8080/XXX(使用外网服务器的IP)
(2)注意,手机端可能无法打开。因为手机端的浏览器认为该地址是IP地址,无域名,直接给拦截了,可以尝试手机端的Chrome浏览器解决。
三、IDEA 集成Tomcat
3.1 使用场景
- 为什么要集成:
如果我们需要修改代码,就需要重复上述 2.6 ~ 2.8 三步操作,十分繁琐,而操作代码又是常有的事。所以,我们让 IDEA 和 Tomcat集成起来,使用 IDEA 图形化界面把代码都部署到Tomcat上,达成“一键式打包&部署”的过程。 - 如何集成:通过Smart Tomcat 插件集成
- 关于插件的选择:使用Smart Tomcat,普遍性强(两种版本都能用)且用法更简单
- 社区版IDEA:只能用Smart Tomcat
- 专业版IDEA:能使用Smart Tomcat 和 TomcatServer(IDEA内置的功能)
3.2 如何安装插件:
-
路径:File ----> settings ---->Plugins ----> Smart Tomcat
- Marketplace:插件市场
- Installed:已经装好的插件
-
if 插件市场加载不出来:
- 去官网下载,手动安装。下载之后会得到一个Jar包。把 Jar 包拖到IDEA界面上,就能安装插件
- 插件市场链接
3.3 配置 Tomcat
项目首次使用 Tomcat时 ,需要配置一下
- Smart Tomcat 的工作原理:
- 并不是把你的 webapp 拷贝到 webapps目录下,而是会创建另一个一个临时目录,让Tomcat加载这个临时目录中的webapp。
- 该目录的配置就是下面的【Catalina base】,对于老版本插件来说,固定不可以更改的,新版可以配置路径。
- 关于配置信息:
-
Name:是用来在IDEA中显示的,可以不配置
-
Tomcat Server:配置电脑上 Tomcat 的路径
-
Catalina base:
-
Deployment directory:IDEA会把这个目录加载到Tomcat中。一般默认即可,不需要配置
-
Context path:之前直接拷贝出来的war包的名字
-
Server port 和 Admin port:分别是业务端口和管理端口
注意,这两个端口号是自己另外配的,并不需要和Tomcat里 conf 文件夹中的server.xml 里的端口号一致,只需要保证浏览器后续发送的http请求的端口和这里一致即可
-
3.4 检验 -----> 确认你的webapp是否被正确加载
- Smart Tomcat 方式:
点右上角的开始键,Smart Tomcat 由于只是加载你这一个webapp,如果加载失败,会直接启动失败 - 拷贝 war包 方式:
如果是拷贝war的方式,Tomcat就需要加载多个webapp,如果加载失败,就只会有日志,如果出现了“部署成功”,就代表webapp被正确加载了。 - 关于日志:本身就是红色的,并非出现了报错
- 关于下面的蓝色链接:此处只是提示你的contextPath是什么,点进去肯定404,url还是需要手动输入