安装
Debian
- 前提准备
- Java环境安装
Tomcat 需java环境,运行1
2
3sudo apt update #升级apt
sudo apt install default-jdk #sudo apt install default-jdk - 新增tomcat用户及用户组
以root运行Tomcat,具有安全风险。我们将创建普通用户运行Tomcat1
2sudo groupadd tomcat #增加tomcat用户组
sudo useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat # 创建一个新 tomcat用户。我们将使该用户成为该tomcat组的成员,它有/opt/tomcat的主目录(我们将安装Tomcat)和 /bin/false的shell(因此没有人可以登录该帐户)
下载
在tomcat官网找到合适版本点击,获取对应tar.gz
链接
将其下载到/tmp
(这是一个很好的下载短暂项目的目录,)目录下
1 | wget https://dlcdn.apache.org/tomcat/tomcat-10/v${VERSION}/bin/apache-tomcat-${VERSION}.tar.gz -P /tmp # 下载对应tomcat到tmp目录下 |
更新权限
设置的tomcat用户需要能够访问Tomcat安装
1 | sudo chgrp -R tomcat /opt/tomcat # 在整个安装目录中授予tomcat组权限 |
创建一个systemd服务文件来管理Tomcat进程
我们希望能够将Tomcat作为服务运行,因此我们将设置systemd服务文件。 Tomcat需要知道Java的安装位置。此路径通常称为“JAVA_HOME”sudo update-java-alternatives -l
,将会得出如java-1.11.0-openjdk-amd64 1111 /usr/lib/jvm/java-1.11.0-openjdk-amd64
有了这条信息,我们就可以创建systemd服务文件了。在/etc/systemd/system目录中键入以下内容以打开一个名为tomcat.service的文件:sudo nano /etc/systemd/system/tomcat.service
将以下内容粘贴到您的服务文件中。替换对应JAVA_HOME
, 如有必要可进行其他属性替换
1 | [Unit] |
完成后,保存并关闭文件(按下Ctrl+X),然后根据提示输入Y
确认,最后按下Enter
键退出编辑器.
1 | sudo systemctl daemon-reload #重新加载systemd守护程序,以便它知道我们的服务文件 |
配置
- 如果是Windows,默认是GBk编码,在控制台上日志会有些乱码,需修改tomcat输出日志为GBK编码。
在comcat安装目录下conf
目录下logging.propertis
中java.util.logging.ConsloeHandler.encoding = GBK
- 默认端口为
8080
可在conf/server
的<Connector port="8080"/>
中修改
servlet
tomcat 9及后面servlet包 引用问题
Servlet从3.0版本后开始支持使用注解配置,3.0版本前只支持XML配置文件的配置方式
1 |
|
urlPatterns匹配规则
精确路径>目录路径(“/xx/*“)>扩展路径(“*.do”)>任意匹配(“/“,”/*“)
扩展匹配前不能再有/
/和/*区别:
当我们的项目中的Servlet配置了“/”,会覆盖掉tomcat中的DefaultServlet,当其他的url-pattern都匹配不上时都会走这个Servlet
当我们的项目中配置了“/*“,意味着匹配任意访问路径
而实际请求时差别就是调用http://localhost:8080/项目名称/ 时,该servlet是否会调用。只是替换默认的则不会,匹配任意的则会。
任意匹配路径都会直接屏蔽静态资源直接访问