一: 前言
承接上一篇 嵌入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/
四: OK,enjoy it