Jetty学习【二】 Server类

1、类关系


几个重要的概念

Server: 服务器类
Container:容器,用于存放父对象和子对象之间的关系。
RelationShip:父子对象关系
Handler:处理HTTP消息的句柄。
Connector:连接的抽象,SelectChannelConnector实现Connector。
LifeCycle:生命周期的抽象。Server,Container,Handler,Connector都继承自LifeCycle。

下面采用Jetty学习【一】 中的第一个HelloWorld例子作为演示。

2、Server初始化

    /* ------------------------------------------------------------ */
    /** Convenience constructor
     * Creates server and a {@link SelectChannelConnector} at the passed port.
     */
    public Server(int port)
    {
        // 更新server
        setServer(this);
        // 设置连接
        Connector connector=new SelectChannelConnector();
        connector.setPort(port);
        setConnectors(new Connector[]{connector});
    }

第一步,更新server。具体步骤如下所示,
    @Override
    public void setServer(Server server)
    {
        // 获取旧的server
        Server old_server=getServer();
        // 如果旧的server和新的server是同一个
        if (server==old_server)
            return;

        // 如果服务器已经启动,则抛出异常
        if (isStarted())
            throw new IllegalStateException(STARTED);

        // 更新Abstacthandler中的_server,同时更新server的container中的bean,删除旧的server,添加新的server
        super.setServer(server);

        // 获取handler,如果不为空则更新handler中的_server。
        Handler h=getHandler();
        if (h!=null)
            h.setServer(server);

        // 更新server的container中的关系 'handler'
        if (server!=null && server!=old_server)
            server.getContainer().update(this, null,_handler, "handler");
    }
其实大体上就是更新container中的内容,而container主要用于保存父对象和子对象之间的关系。比如server中的_handler和server的关系就是"handler"。

/* ------------------------------------------------------------ */
/** Container.
 * This class allows a containment events to be generated from update methods.
 * 该类允许使用update函数完成包含事件。
 * The style of usage is: <pre>
 *   public void setFoo(Foo foo)
 *   {
 *       getContainer().update(this,this.foo,foo,"foo");
 *       this.foo=foo;
 *   }
 *   
 *   public void setBars(Bar[] bars)
 *   {
 *       getContainer().update(this,this.bars,bars,"bar");
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值