辛星jetty嵌入式开发第三篇:监听多个端口

本系列教程已经上传至github,感兴趣的朋友们可以star一下,附上传送门: https://github.com/xinxing0913/jetty-embed-demo

有时候我们出于各种需要,可能需要监听多个端口,那么这个时候该怎么实现呢?这里我们只需要创建两个连接器就可以了,也就是两个Connector,因为我们这里要设置监听的端口,因此我们这里可以使用ServerConnector。而且我们要记得把连接器添加给Server类的实例。

我们这里还是来看一个具体的例子吧,我们编写代码内容如下:

package com.mengzhidu.jetty.demo.x003;

import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;

/**
 * 在这个范例中,我们同时监听两个端口
 * 分别为8080 和 9090
 * 这里我们只需要创建两个连接器即可
 */
public class App {
    public static void main(String[] args) throws Exception {
        Server server = new Server();

        ServerConnector connector1 = new ServerConnector(server);
        connector1.setPort(8080);

        ServerConnector connector2 = new ServerConnector(server);
        connector2.setPort(9090);

        // 给服务器添加监听器
        server.setConnectors(new Connector[] { connector1, connector2});

        server.setHandler(new OutputHandler());
        server.start();
        server.join();
    }
}

然后我们编写我们的OutputHandler,它的作用很简单,就是输出一段简单的文本信息,我们代码内容如下所示:

package com.mengzhidu.jetty.demo.x003;

import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 负责输出的Handler
 */
public class OutputHandler extends AbstractHandler {

    @Override
    public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {

        // 设置字符集
        response.setContentType("text/html;charset=utf-8");
        // 输出文本信息
        response.getWriter().println("hello jetty! 我是辛星 (*^__^*)");
        // 这里要标记为已处理
        baseRequest.setHandled(true);
    }
}

这样我们就已经监听两个端口了,而且这两个端口运行的代码也是完全一样的,我们启动程序,然后我们来看一下执行效果吧:


同时监听两个端口

当然同时监听更多的端口的代码也是类似的,这里就不赘述了。一般来说,我们监听多个端口在很多时候还是需要的,特别是在隔离内网和外网的场景下。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,908评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,948评论 6 342
  • 不知道从什么时候,已经习惯了失败,然后再失败,总是循环在疗伤的过程之中。经年累月,痛楚不已。而自己本应该做的事情,...
    人间五十年阅读 549评论 0 0
  • 哇咔咔,一天没敲代码,想起来现在已经是21:42了,还能怎么着,敲呗!Start from P205 第11章 测...
    开发猛男阅读 170评论 0 0
  • 今天我回家了。坐高铁回家,半个多小时就到了。 下了高铁,嘿,下雨了。在长沙的时候没有下雨,所以,好多人没有打伞。我...
    谦与芊寻阅读 366评论 0 0