- 环境准备: 安装 Java 和 Tomcat。
- 创建 Web 应用: 编写一个简单的 Java Servlet 来处理 Android 的请求。
- 部署 Web 应用: 将你的应用打包并部署到 Tomcat。
- Android 客户端: 编写 Android 代码来访问 Tomcat 服务。
- 测试与运行: 启动服务器,运行 App,进行测试。
第 1 步:环境准备
在开始之前,你需要确保你的开发环境已经准备好。

1 安装 Java 开发工具包
Tomcat 是一个用 Java 编写的应用服务器,因此必须安装 JDK。
- 下载: 访问 Oracle 官网 或 OpenJDK 官网 下载适合你操作系统的 JDK 版本(推荐 JDK 8 或更高版本)。
- 安装: 运行安装程序,按照提示完成安装,记住安装路径,
C:\Program Files\Java\jdk-11.0.12。 - 配置环境变量:
JAVA_HOME: 设置为你的 JDK 安装路径,C:\Program Files\Java\jdk-11.0.12。Path: 在变量值中添加%JAVA_HOME%\bin。- 验证:打开一个新的命令行窗口,输入
java -version和javac -version,如果能看到版本信息,说明安装成功。
2 下载并配置 Tomcat
- 下载: 访问 Tomcat 官网 下载最新的 Core 版本(Tomcat 10),选择解压版(zip 或 tar.gz)会更方便。
- 安装: 解压下载的文件到你希望的位置,
C:\apache-tomcat-10.1.0。 - 配置环境变量 (可选但推荐):
CATALINA_HOME: 设置为你的 Tomcat 安装路径,C:\apache-tomcat-10.1.0。
- 启动 Tomcat:
- Windows: 进入
bin目录,双击startup.bat。 - macOS/Linux: 进入
bin目录,执行./startup.sh。
- Windows: 进入
- 验证: 打开浏览器,访问
http://localhost:8080,如果你能看到 Tomcat 的欢迎页面,说明 Tomcat 已经成功启动。
第 2 步:创建 Web 应用 (使用 Servlet)
我们将创建一个最简单的 Servlet,它能接收 Android 发送过来的 "Hello" 请求,并返回 "World from Tomcat!"。
1 创建项目结构
在你的工作目录下,创建如下文件夹结构,这符合 Java Web 应用的标准结构:
MyAndroidServer/
├── src/
│ └── com/
│ └── example/
│ └── servlet/
│ └── HelloServlet.java
├── web/
│ └── WEB-INF/
│ └── web.xml
└── lib/ (存放依赖的jar包,现在暂时为空)
2 编写 Servlet 代码
在 src/com/example/servlet/HelloServlet.java 文件中写入以下代码:

package com.example.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
// 使用注解来映射URL,更现代的方式
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置响应内容类型为文本
response.setContentType("text/plain");
// 获取一个输出流来写入响应
PrintWriter out = response.getWriter();
// 写入响应数据
out.println("World from Tomcat!");
out.close();
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 对于POST请求,我们做同样的处理
doGet(request, response);
}
}
说明:
@WebServlet("/hello"): 这个注解告诉 Tomcat,当访问/hello这个路径时,由HelloServlet来处理。doGet/doPost: 分别处理 HTTP 的 GET 和 POST 请求。
3 创建部署描述符 web.xml
虽然我们使用了注解,但为了完整性和兼容性,我们也可以创建一个 web.xml 文件,在 web/WEB-INF/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">
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>com.example.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
这个 web.xml 的作用和 @WebServlet("/hello") 注解是相同的。
第 3 步:部署 Web 应用到 Tomcat
我们需要将这个应用打包成一个 .war 文件,然后部署到 Tomcat。
1 编译代码并打包成 WAR 文件
最简单的方法是使用 IDE(如 IntelliJ IDEA 或 Eclipse),它们可以一键完成编译和打包,这里我们介绍使用命令行的方式(需要 Apache Ant 或 Maven,这里以 Ant 为例)。
如果你没有 Ant,可以直接手动编译:
-
编译:
# -d 指定输出目录 # -cp 指定 classpath,这里包含 Tomcat 的 servlet-api.jar javac -d "build/classes" -cp "C:\apache-tomcat-10.1.0\lib\servlet-api.jar" "src\com\example\servlet\HelloServlet.java"
注意:你需要将
servlet-api.jar从 Tomcat 的lib目录复制到你的项目目录下的lib目录,或者直接在命令行中指定其完整路径。 -
创建 WAR 文件: 手动创建一个
MyAndroidServer.war文件,并将以下内容放入其中:- 将
build/classes目录下的所有文件(即编译后的.class文件)放入WEB-INF/classes/目录。 - 将
web目录下的所有内容(包括WEB-INF/web.xml)放入MyAndroidServer.war的根目录。 - 使用
jar命令打包:jar -cvf MyAndroidServer.war -C build/ .
这条命令会将
build目录下的内容(包括classes)打包成MyAndroidServer.war。
- 将
2 部署 WAR 文件
将生成的 MyAndroidServer.war 文件复制到 Tomcat 的 webapps 目录下。
C:\apache-tomcat-10.1.0\webapps\MyAndroidServer.war
3 验证部署
- 启动 Tomcat (如果还没启动的话)。
- Tomcat 会自动检测到新的
.war文件,并自动解压和部署它。 - 几秒钟后,你可以在
webapps目录下看到一个名为MyAndroidServer的新文件夹。 - 在浏览器中访问
http://localhost:8080/MyAndroidServer/hello。 - 如果一切正常,你应该会看到页面显示:
World from Tomcat!
第 4 步:创建 Android 客户端
现在我们来创建一个 Android App 来访问这个服务器。
1 创建 Android Studio 项目
创建一个新的 Android Studio 项目,选择 "Empty Activity"。
2 添加网络权限
在 app/src/main/AndroidManifest.xml 文件中,添加 INTERNET 权限:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<!-- 添加网络权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<application ...>
...
</application>
</manifest>
3 编写网络请求代码
为了不阻塞
