一: 前言
承接上一篇 嵌入jetty--簡單實現 ,在上篇中我們使用默認的connector來處理連接,
這裏我們添加指定的連接方式。
二: 代碼修改
我們只需要修改下上篇文章中的JettyServer類即可,修改後如下:
package com.netboy.jetty.demo;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import com.netboy.jetty.handler.HelloHandler;
/**
* Hello world!
*
*/
public class JettyServer
{
public static void main( String[] args ) throws Exception
{
Server jettyServer = new Server(8080);
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(8080);
jettyServer.setConnectors(new Connector[] {connector});
HelloHandler helloHandler = new HelloHandler();
jettyServer.setHandler(helloHandler);
System.out.println( "....start jetty server..." );
jettyServer.start();
jettyServer.join();
}
}
這裏我們選擇使用select輪詢機制的連接方式。有沒有發現,jetty將處理連接代理給了connector類,而server.setConnector()傳入的參數是一個connector類數組,
顯然,我們可以設置多個connector類對應多個端口,來提供不同的服務。
OK。我們來試試:
public static void main( String[] args ) throws Exception
{
Server jettyServer = new Server(8080);
SelectChannelConnector connector_0 = new SelectChannelConnector();
connector_0.setPort(8080);
SelectChannelConnector connector_1 = new SelectChannelConnector();
connector_1.setPort(8989);
jettyServer.setConnectors(new Connector[] {connector_0, connector_1});
HelloHandler helloHandler = new HelloHandler();
jettyServer.setHandler(helloHandler);
System.out.println( "....start jetty server..." );
jettyServer.start();
jettyServer.join();
}
三: 運行
http://localhost:8080/
http://localhost:8989/