tio-Server Web 开发入门示例

简介

本文档旨在为初学者介绍如何使用 tio-server 进行基本的 Web 开发。tio-server 是一个 Java 库,用于创建和管理服务器,特别是在处理 HTTP 请求和响应方面。以下是一个简单示例,展示了如何使用 tio-server 设置一个基本的 HTTP 服务器,并定义了一些简单的路由和处理程序。

环境准备

  • Java 开发环境:确保你的机器上安装了 Java 1.8 或更高版本。
  • Maven:本示例使用 Maven 来管理项目依赖和构建过程。
  • IDE:推荐使用 IntelliJ IDEA、Eclipse 或任何支持 Maven 的 IDE。

项目结构

以下是项目的基本结构:

- src
  - main
    - java
      - com.litongjava.tio.http.server
        - HttpServerStarterTest.java
      - com.litongjava.tio.http.server.controller
        - IndexController.java
- pom.xml
  • HttpServerStarterTest.java:服务器启动类。
  • IndexController.java:包含用于处理 HTTP 请求的方法。
  • pom.xml:Maven 配置文件,定义了项目的依赖和构建配置。

Maven 配置

pom.xml 文件定义了项目的依赖和其他 Maven 配置。以下是一个基本的 pom.xml 配置示例:

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <java.version>1.8</java.version>
  <maven.compiler.source>${java.version}</maven.compiler.source>
  <maven.compiler.target>${java.version}</maven.compiler.target>
</properties>

<dependencies>
  <dependency>
    <groupId>com.litongjava</groupId>
    <artifactId>tio-server</artifactId>
    <version>3.7.3.v20231218-RELEASE</version>
  </dependency>
</dependencies>

编写代码,启动类和Controller

package com.litongjava.tio.http.server.controller;

import com.litongjava.tio.http.common.HttpRequest;
import com.litongjava.tio.http.common.HttpResponse;
import com.litongjava.tio.http.server.util.Resps;

public class IndexController {

  public HttpResponse index(HttpRequest request) {
    return Resps.txt(request, "index");

  }

  public HttpResponse login(HttpRequest request) {
    return Resps.txt(request, "login");
  }

  public HttpResponse exception(HttpRequest request) {
    throw new RuntimeException("error");
  }
}
package com.litongjava.tio.http.server;

import java.io.IOException;

import com.litongjava.tio.http.common.HttpConfig;
import com.litongjava.tio.http.common.handler.HttpRequestHandler;
import com.litongjava.tio.http.server.controller.IndexController;
import com.litongjava.tio.http.server.handler.HttpRoutes;
import com.litongjava.tio.http.server.handler.SimpleHttpDispahterHanlder;
import com.litongjava.tio.http.server.handler.SimpleHttpRoutes;

public class HttpServerStarterTest {

  public static void main(String[] args) throws IOException {
    // 手动添加路由
    IndexController controller = new IndexController();
    HttpRoutes simpleHttpRoutes = new SimpleHttpRoutes();
    simpleHttpRoutes.add("/", controller::index);
    simpleHttpRoutes.add("/login", controller::login);
    simpleHttpRoutes.add("/exception", controller::exception);

    // config server
    HttpConfig httpConfig = new HttpConfig(80, null, null, null);
    HttpRequestHandler requestHandler = new SimpleHttpDispahterHanlder(httpConfig, simpleHttpRoutes);
    HttpServerStarter httpServerStarter = new HttpServerStarter(httpConfig, requestHandler);

    // start server
    httpServerStarter.start();
  }

}

核心代码解释

IndexController.java

IndexController 类包含了几个方法,每个方法对应一个 HTTP 路由的处理逻辑。

  • index(HttpRequest request):处理根路由 / 的请求。
  • login(HttpRequest request):处理 /login 路由的请求。
  • exception(HttpRequest request):处理 /exception 路由的请求,抛出一个异常。
HttpServerStarterTest.java

HttpServerStarterTest 类是服务器的入口点,包含 main 方法来启动服务器。

  1. 创建 IndexController 实例和 SimpleHttpRoutes 实例。
  2. 为不同的路径(如 /, /login, /exception)添加路由和对应的处理方法。
  3. 配置 HttpConfig,设置服务器端口(例如 80)。
  4. 创建 HttpRequestHandler 实例,负责分发 HTTP 请求到对应的处理方法。
  5. 实例化 HttpServerStarter 并启动服务器。

运行服务器

要运行服务器,请在 IDE 中运行 HttpServerStarterTest.java,或通过命令行使用 Maven 命令 mvn exec:java -Dexec.mainClass="com.litongjava.tio.http.server.HttpServerStarterTest"

一旦服务器启动,你可以通过浏览器或任何 HTTP 客户端向 http://localhost 发送请求,以测试不同的路由。

项目开源地址
https://github.com/litongjava/t-io


李通
215 声望0 粉丝