在服务器上搭建 Java 项目:Tomcat 与 Jetty 配置详解
在 Java 开发领域,Servlet 容器扮演着至关重要的角色。Tomcat 和 Jetty 是两种广泛使用的轻量级和重量级 Servlet 容器,它们能够帮助开发者快速部署和运行 Java Web 应用。本文将深入探讨如何在服务器上搭建 Java 项目,并通过配置 Tomcat 和 Jetty 来实现应用的运行。我们将从环境搭建、项目配置、服务器设置等多个角度进行详细解析,力求为读者提供一套完整且实用的解决方案。
环境准备与依赖管理
在开始搭建之前,我们需要确保服务器环境已经具备运行 Java Web 应用的基本条件。首先,我们需要安装 Java 运行环境(JRE)和 Java 开发工具包(JDK)。可以通过以下命令在 Linux 系统中检查 Java 是否已经安装:
java -version
如果尚未安装,可以从 Oracle 官网下载并安装适合服务器的 JDK 版本。安装完成后,我们还需要配置环境变量 JAVA_HOME 并将其添加到 PATH 中,确保命令行能够识别 java 和 javac 命令。
接下来,我们需要一个 Java 项目。这里我们以一个简单的 Servlet 应用为例,使用 Maven 作为项目构建工具。在创建项目时,需要在 pom.xml 文件中添加以下依赖:
<dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </dependency>
</dependencies>
Tomcat 配置详解
Tomcat 是一个开源的 Servlet 容器,被广泛应用于各种 Java Web 应用中。以下是如何在服务器上配置 Tomcat 的详细步骤:
安装与启动 Tomcat
首先,从 Apache Tomcat 官网下载适合服务器的版本,并解压到指定目录。例如:
wget https://downloads.apache.org/tomcat/tomcat-9.0.41/bin/apache-tomcat-9.0.41.tar.gz
tar xzvf apache-tomcat-9.0.41.tar.gz
mv apache-tomcat-9.0.41 /opt/tomcat
启动 Tomcat 服务:
cd /opt/tomcat
./bin/startup.sh
默认情况下,Tomcat 会监听 8080 端口。可以通过 curl 命令检查服务是否正常运行:
curl http://localhost:8080
配置 Tomcat
Tomcat 的核心配置文件是 server.xml,位于 /opt/tomcat/conf 目录下。我们可以通过修改此文件来调整服务器设置,例如:
- 
修改端口号:
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> - 
添加 SSL 支持:
<Connector port="8443" protocol="HTTP/1.1" clientAuth="false" sslProtocol="TLS" /> - 
设置 JVM 参数:
<Package writeArgs="true" debug="0" stderr="true"> <ClassPath> каталог 加入 一些类库</ClassPath> <Session> <Timeout>30</Timeout> <DataStore> <Type>memory</Type> </DataStore> </Session> <Logger className="org.apache.catalina.session.DocumentedStandardLogger" showSessions="false" _Valores_0="false" showThread="false"/> <Loader className="org.apache.catalina.loader.StandardLoader" debug="0"/> <Service name="Catalina"/> <Connector className="org.apache.catalina.connector.Connector" port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" acceptCount="100" connectionTimeout="20000" redirectPort="8444"/> <Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="/" docBase="/opt/myapp" reloadable="true"/> </Host> </Engine> </Service> - 
部署应用:
将编译后的 WAR 包复制到
webapps目录下,Tomcat 会自动部署并启动应用。 
Jetty 配置详解
Jetty 是另一个高性能的 Servlet 容器,具有丰富的 API 和灵活的配置选项。以下是如何在服务器上配置 Jetty 的详细步骤:
安装与启动 Jetty
首先,从 Eclipse Jetty 官网下载适合服务器的版本,并解压到指定目录。例如:
wget https://github.com/jettyopenssl/jetty/releases/downloademarks/jetty-9.4.44.v20200430/jetty-9.4.44.v20200430.tar.gz
tar xzvf jetty-9.4.44.v20200430.tar.gz
mv jetty-9.4.44.v20200430 /opt/jetty
启动 Jetty 服务:
cd /opt/jetty/bin
./startup.sh
默认情况下,Jetty 会监听 8080 端口。可以通过 curl 命令检查服务是否正常运行:
curl http://localhost:8080
配置 Jetty
Jetty 的核心配置文件是 jetty.xml,位于 /opt/jetty/etc 目录下。我们可以通过修改此文件来调整服务器设置,例如:
- 
修改端口号:
<Set name="port"><SystemProperty name="jetty.port" value="8081"/></Set> - 
添加 SSL 支持:
<Connector port="8443" scheme="https" secure="true" proxyName="jetty.apache.org" proxyPort="80"/> - 
设置 JVM 参数:
<Server port="8080" handler="defaultHandler" JavaArgs="-Xms128m -Xmx1024m"> <Configure class="org.eclipse.jetty.server.ServerConnector"> <Set name="port"><SystemProperty name="jetty.port" value="8080"/></Set> <Set name="host"><SystemProperty name="jetty.host" value="localhost"/></Set> <Set name="clientPort"><SystemProperty name="jetty.clientPort" value="5555"/></Set> <Set name="maxIdleTime"><SystemProperty name="jetty.maxIdleTime" value="300000"/></Set> <Set name="stopTimeout"><SystemProperty name="jetty.stopTimeout" value="5000"/></Set> <Set name="stopAtShutdown"><SystemProperty name="jetty.stopAtShutdown" value="true"/></Set> <Set name="securePort"><SystemProperty name="jetty secure port" value="443"/></Set> <Set name="stopPort"><SystemProperty name="jetty stop port" value="9999"/></Set> <Set name="sendServerVersion"><SystemProperty name="jetty.sendServerVersion" value="false"/></Set> <Set name="parmServerTimeZone"><SystemProperty name="jetty parm server TimeZone" value="America/New_York"/></Set> <Set name="serverTimeZone"><SystemProperty name="jetty server TimeZone" value="America/New_York"/></Set> <Set name="webAppFactoryClass"><SystemProperty name="jetty webAppFactoryClass" value="org.eclipse.jetty.webappichern部署的+)//container*/</pattern> </Set> </Server> - 
部署应用:
将编译后的 WAR 包复制到
/opt/jetty/webapps目录下,Jetty 会自动部署并启动应用。 
对比 Tomcat 与 Jetty
虽然 Tomcat 和 Jetty 都是优秀的 Servlet 容器,但它们在某些方面存在差异:
性能
- Tomcat 在处理高并发请求时表现优异,特别是在静态资源请求方面。
 - Jetty 在启动速度和资源占用方面更有优势,适合轻量级应用。
 
易用性
- Tomcat 拥有庞大的社区支持和丰富的文档资源,学习资源丰富。
 - Jetty 配置更加灵活,但可能需要更多时间来熟悉其配置选项。
 
功能
- Tomcat 提供了更完善的插件生态系统,支持多种第三方扩展。
 - Jetty 在嵌入式应用方面表现优异,可以轻松集成到其他应用中。
 
最佳实践与安全配置
应用安全配置
为了确保应用的安全性,我们需要对 Tomcat 和 Jetty 进行一些安全配置:
- 
禁用已知漏洞:
- 禁用 JDBC 访问日志:
<GlobalNamingResources> 
 - 禁用 JDBC 访问日志:
 

        
           
           
AI 助手1 天前
发表在:欢迎使用emlog感谢您的分享!很高兴看到大家对工业3D...
AI 助手5 天前
发表在:欢迎使用emlog感谢分享!您的观点很独特,听起来像是一...
AI 助手6 天前
发表在:欢迎使用emlog非常感谢您的分享!3D сканеры...
AI 助手9 天前
发表在:欢迎使用emlog非常感谢您的分享!听起来3D金属打印技...
AI 助手10 天前
发表在:欢迎使用emlog谢谢分享!WMS系统确实能提升仓储效率...
AI 助手11 天前
发表在:欢迎使用emlog谢谢分享这些有价值的建议!希望您的3D...
主机评测博客13 天前
发表在:内存卡损坏数据恢复的7个方法(内存卡读不出修复)https://www.88993.cn...
emlog13 天前
发表在:欢迎使用emlog这是系统生成的演示评论