最近学习Java web时配置Tomcat遇到了一些问题,耗费了很长时间才解决,所以我想着写一篇关于Tomcat的博客加深一下记忆,同时看看能不能给学习Java的码友们提供一点帮助,下面进入正题:
1.Tomcat简介
1.1 什么是Tomcat
Tomcat是一个开源的、轻量级的应用服务器,是Apache软件基金会的一个项目。它实现了Java Servlet、JavaServer Pages(JSP)和Java Expression Language(EL)等Java技术,用于支持在Java平台上运行的动态Web应用程序。Tomcat的全名是Apache Tomcat。
1.2 Tomcat的作用
1.托管Java Web应用程序
2.Servlet容器
这个板块建议大家去看一下“还在路上的秃头”这位博主的关于该内容的博客,链接如下:http://t.csdnimg.cn/zIrcL
2.Tomcat的安装以及环境配置
2.1 安装
Tomcat官网https://tomcat.apache.org/下载对应版本的压缩包
在Tomcat官网左侧栏中Download里面就有各版本的Tomact,大家在下载是要提前去阅读一下Download栏里面的which version?文件,这个文件记录着Java版本和Tomcat版本的兼容问题
例如表中第一条就代表11.0.x系列的版本需要Java的版本在17及以上才可以使用,进入下载页面后选择如下图的压缩包进行下载
将下载后的Tomcat放入一个不含中文名称的路径(切记不含中文名称的路径),比如我的路径为
D:\Tomcat\apache-tomcat-9.0.91,然后在该文件夹里进行解压即可
2.2 环境配置
安装并解压完Tomcat后复制该路径,之后打开系统环境变量新建一个变量名为CATALINA_HOME
,变量值为Tomcat解压后文件路径的系统变量,下图是我的系统变量:
新建完毕后打开path系统变量,将CATALINA_HOME按如下图所示的格式添加到path环境中
做完上述步骤后Tomcat的安装和环境配置就成功了
2.3 Tomcat的配置问题
问题一:
Tomcat配置完系统变量后也要检查一下自身的运行问题,找到Tomcat文件位置apache-tomcat-9.0.91 -> bin -> startup.bat双击该文件,若命令窗口不出现或闪了一下又关闭了,该问题的原因是Tomcat的端口被占用了(Tomcat默认端口号为8080),该问题的解决方法为conf -> service.xml,将该文件中的port修改为别的端口即可
问题二:
若startup.bat文件可以打开命令窗口,但窗口中的信息为乱码,则该问题的解决方法为
conf -> logging.properties,将该文件中的encoding的UTF-8改为GBK即可
3.IDEA部署Tomcat
根据一个案例介绍IDEA如何部署Tomcat
3.1 创建项目
新建一个Maven工程,自定义名称为TestTomcat,在Java目录下创建一个test类,并在该项目得pom.xml文件中引入Servlet依赖,Servlet依赖如下:
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
test类的代码
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/ser")
public class test extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("hello tomcat");
resp.getWriter().write("hello tomcat");
}
}
其中@WebServlet("/ser")指定的是Servlet path
3.2 部署
项目准备完毕后选中该项目,右键->添加框架支持,选择Web应用程序
添加Web应用程序后项目的目录为
之后在IDEA界面的右上方找到编辑配置,进入之后添加新的运行配置,找到Tomcat->本地
点击进入Tomcat部署界面,首先配置Tomcat,其次选择你的Tomcat即它的路径->确定,其中有一个警告,直接点击修复即可
点击修复后进入如下页面,其中应用程序上下文的路径(context path)可以自定义,最后应用->确定
按照上述方法Tomcat即可配置成功
3.3 添加框架支持
这个功能有些朋友在做的时候右键后可能没有该功能(不要慌),这是因为IDEA得版本不同的原因造成的,接下来我来告诉朋友们怎么找:设置 -> 外观与行为 -> 按键映射 -> 插件 -> Java -> 添加框架支持,之后可以设置一个快捷键,等下次直接快捷键就可以一键添加框架支持了
4.报错问题分析
这个模块是最最最恶心人得,没有之一,但是不把它解决了程序还没发跑,难受、想哭😭
4.1 报错404
出现该原因大概率是用:户访问的资源不存在,大概率是 URL 的路径写的不正确
错误实例1: 少写了 Context Path 或者 Context Path 写错了
错误实例2: 少写了 Servlet Path 或者 Servlet Path 写错了
注意点
错误实例3: Tomcat启动成功,但是访问页面报404错误
该错误是因为output directory(输出目录)路径配置错误了,一定要让项目的输出路径为Tomcat的web路径,而不能是项目路径
4.2 报错405
出现 405 原因: 访问的服务器不能支持请求中的方法或者不能使用该请求中的方法
错误实例: 没有重写 service 方法
4.3 报错500
出现 500 原因: 服务器出现内部错误,往往是 Servlet 代码中抛出异常导致的
错误实例: 运算时异常,等等各种异常