凌峰创科服务平台

Tomcat如何搭建Android服务器?

  1. 环境准备: 安装 Java 和 Tomcat。
  2. 创建 Web 应用: 编写一个简单的 Java Servlet 来处理 Android 的请求。
  3. 部署 Web 应用: 将你的应用打包并部署到 Tomcat。
  4. Android 客户端: 编写 Android 代码来访问 Tomcat 服务。
  5. 测试与运行: 启动服务器,运行 App,进行测试。

第 1 步:环境准备

在开始之前,你需要确保你的开发环境已经准备好。

Tomcat如何搭建Android服务器?-图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 -versionjavac -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
  • 验证: 打开浏览器,访问 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 文件中写入以下代码:

Tomcat如何搭建Android服务器?-图2
(图片来源网络,侵删)
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,可以直接手动编译:

  1. 编译:

    # -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 目录,或者直接在命令行中指定其完整路径。

  2. 创建 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 编写网络请求代码

为了不阻塞

分享:
扫描分享到社交APP
上一篇
下一篇