一个免费的,开放源代码的Web应用服务器
Tomcat
安装
1、下载
先查看JDK和Tomcat版本对应关系,Windows下载zip压缩版或者exe安装版1。
2、设置环境变量
解压版单独启动Tomcat需要设置JAVA_HOME环境变量,在Intellij和Eclipse中启动Tocmat不需要。
如果系统中存在多个版本的JDK,可以为Tomcat指定运行时JDK版本。
在%tomcat%/bin/setclasspath.bat
或者%tomcat%/bin/startup.bat
文件,开始位置添加set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_171
语句。2
3、启动、关闭、查看版本
分别对应%tomcat%/bin/startup.bat
、%tomcat%/bin/shutdown.bat
和%tomcat%/bin/version.bat
文件。
浏览器输入http://localhost:8080,看到一只猫则启动正常。
Tomcat目录结构
Tomcat目录结构如下3:
+-- bin/ ---启动、关闭Tomcat脚本
+-- conf/ ---配置文件
| --- server.xml ---服务器配置信息
| --- tomcatusers.xml ---保存用户名和密码,进入管理页面
| --- web.xml ---部署描述符文件,注册了很多MIME类型,即文档类型
| --- ...
+-- lib/ ---运行加载的Jar包
+-- logs/ ---日志文件
| +-- catalina.xxxx-xx-xx.log ---控制台输出日志
| --- ...
+-- temp/ ---运行时产生的临时文件
+-- webapps/ ---供外界访问的Web应用目录,支持war包
| +-- ROOT ---缺省Web项目,url中不需要填写目录名称
| --- ...
+-- work ---工作目录,JSP编译后生成的文件
Web应用目录结构
非maven项目4
+-- src/ ---项目源代码
+-- WebRoot(或者webapp)/ ---Web项目部署根目录,下面的文件全部发布到Tomcat
| +-- META-INF ---清单目录
| +-- WEB-INF ---固定写法(该目录下的资源不能通过浏览器直接访问,需要把资源配置到web.xml)
| | +-- classes ---源码编译后的class文件、配置文件
| | +-- lib ---项目依赖的jar文件
| | --- web.xml ---项目配置文件
| +-- js ---js文件
| +-- css ---css文件
| +-- img ---img文件
| +-- jsp ---jsp文件
| --- ...
配置
1、修改端口
修改%tomcat%/conf/server.xml
文件,将8080修改为其他端口后重启Tomcat生效。5
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
2、配置虚拟目录(外部应用)
参考6
3、映射虚拟主机
hosts文件添加ip和域名映射即可,service.xml按需添加host节点7。
4、同一台机器部署多个Tomcat
修改service.xml中Server、Connector(2个)的port8。
5、配置用户名和密码
参考9
6、配置Https
参考10
7、内存配置
在%tomcat%\bin\catalina.bat
文件第一行添加set JAVA_OPTS=-Xms128m -Xmx256m
11
8、startup.bat详解
参考12
9、catalina.bat详解
参考13
10、server.xml详解
参考14
常见问题
-
Tomcat安装目录带空格
Tomcat会将路径中的空格转为20%,Java代码中获取类路径容易出现异常。15
-
Server.xml配置Host节点中Context节点中的path为空
webapps下ROOT项目访问异常,且关闭tomcat服务器时报错
Failed to unregister MBean with name……javax.management.InstanceNotFoundException
,删除ROOT目录即可。 -
启动警告The APR based Apache Tomcat Native library which allows optimal performance in production
需要在Tomcat中安装APR,下载
-
Linux部署Tomcat图形异常16
报错
[Could not initialize class sun.awt.X11GraphicsEnvironment](https://www.cnblogs.com/hwaggLee/p/5454463.html)
,需要在%tomcat%\bin\catalina.bat
文件第一行添加CATALINA_OPTS=-Djava.awt.headless=true
。 -
启动Tomcat控制台日志中文乱码17
在
%tomcat%\conf\logging.properties
文件中将java.util.logging.ConsoleHandler.encoding = UTF-8
注释或者修改为java.util.logging.ConsoleHandler.encoding = GBK
。