Tomcat
Tomcat是由Apache提供的一种开源免费Web服务器,提供jsp和servlet支持,轻量级容器
安装Tomcat
从Tomcat官网的Download标签中获取对应的Tomcat版本的ZIP压缩文件,解压即用,Tomcat版本与JDK版本对应关系如下:详细版本对应关系从Tomcat官网映射表获取
Tomcat版本 | JDK版本 | JavaEE版本 | Servlet/JSP版本 |
---|---|---|---|
7.x | JDK1.7 | JavaEE 6 | 3.0/2.2 |
8.x | JDK1.7及以上 | JavaEE 7 | 3.1/2.3 |
9.x | JDK1.8及以上 | JavaEE 8 | 4.0/2.3 |
Tomcat目录
目录名 | 描述 |
---|---|
bin |
可执行命令存放目录 |
conf |
服务器配置文件目录 |
lib |
JavaWeb项目引入的相关jar包存放目录 |
logs |
服务器日志文件目录 |
temp |
服务器运行时产生的临时数据目录 |
webapps |
部署的web项目目录 |
work |
服务器工作目录 |
IDEA整合Tomcat
创建javaWeb项目
- 创建新项目时选择Java企业版
Java Enterprise
Java EE version
选项中选择JavaEE版本Application Server
选项中选择Tomcat Server
Tomcat Home
中配置tomcat安装目录Additional Libraries and Frameworks
中勾选Web Application
之后才会创建完整的web应用解构(要确定最下方的Create web.xml
被勾选)
创建的目录包含
src
目录和web
目录,web
目录中存放有一个WEB-INF
目录,web.xml
文件就存放在这之中
src
目录用于存放Java代码web
目录用于存放静态资源文件,但是其中WEB-INF
目录是受保护的目录不会被访问到,所以用到的第三方库会放在这里web.xml
文件用于配置整个Web应用
web.xml中的内容
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
</web-app>
IDEA配置Tomcat
- 点击运行按钮左面的tomcat下拉框,选择
Edit Configurations...
进行配置项目的tomcat - 右侧栏中选择
Server
,Open browser
组中勾选After launch
自动打开浏览器,On frame deactivation
标签的下拉框设置为Update classes and resoures
热部署更新就不必修改完代码后再重启Tomcat进行调试了 - 右侧栏中选择
Deployment
,向下滑动找到Application context
,将输入框文本设置为项目名称(浏览器访问项目的前缀路径)
开发过程中要使用debug按钮运行项目进行调试,会之间使用文件夹部署,而且只有在debug模式下才支持热部署,若使用运行按钮则会进行打包后部署相对较慢
当启动项目后若再点击debug按钮则会出现以下4个选项
Update resources
:更新静态资源Update classes and resources
:更新字节码和静态资源Redeploy
:重新部署Restart server
:重启Tomcat
项目打包
- 依次点击
File > Project Structure... > Artifacts
- 再点击中间栏的加号依次点击
Web Application: Archive > Empty
- 再在最右侧栏中的
Name
输入框中设置war包的包名 - 再选中最右侧栏中下方
Output Layout
标签,将该栏下的右侧项目名下的所有文件双击添加到左侧中 - 回到代码编辑器中,依次点击
Build > Buid Artifacts... > 刚才配置的war包名
- 该项目中的
out/artifacts/项目名/项目名.war
就是打包后的war包 - 放入tomcat中的webapp目录中启动tomcat即可自动部署
Tomcat问题及解决
解决Tomcat乱码问题
出现乱码的原因是在Windows下CMD命令行工具的编码默认是CBK,而Tomcat的编码默认是UTF-8
- 解决方案1:将tomcat安装目录中的
conf/logging.properties
文件中的UTF-8
替换为GBK
,此方法可能会导致其他地方乱码 - 解决方案2:
- 将Windows下的CMD命令行修改为
UTF-8
,依次点击win10的设置 > 时间和语言 > 语言 >相关设置中的管理语言设置 > 更改系统区域设置
之后勾选Beta版本:使用Unicode UTF-8 提供全球语言支持
重启电脑 - 此时发现CMD中的Tomcat不乱码了,但是IDEA中的还是乱码,打开IDEA依次点击
Help > Edit Custom VM Options
会打开一个文件,再文件底部添加-Dfile.encoding=UTF-8
,重启IDEA - 此时发现Tomcat不乱码了,但是使用Servlet控制台输出中文时还是乱码,在配置项目的tomcat界面的
VM options
框中输入-Dfile.encoding=UTF-8
即可
- 将Windows下的CMD命令行修改为
启动Tomcat端口占用问题
Interrupted function call: accept failed
,找到占用端口程序关闭即可,或设置Tomcat为其他端口即可
Comments NOTHING