上一节讲述了怎么配置Jetty,这节将告诉你使用Jetty你需要配置些什么。
配置Server
Server实例是Jetty服务端的中心协调对象,它为所有其他Jetty服务端组件提供服务和生命周期管理。在标准Jetty发布中,核心的服务端配置是在etc/jetty.xml文件中,你也能在其中包含其他服务端配置,可以包括:
1)ThreadPool
Server实例提供了一个线程池,你可以在etc/jetty.xml中配置最大线程数和最小线程数。
2)Handlers
Jetty服务端只能有一个Handler实例处理HTTP请求。然而一个handler可以是一个容器或者是其它多个handler的包装,这些handler可以形成一棵树,通常是树的一个分支的根到叶子节点的所有handler协作处理一个请求。默认的handler树设置在etc/jetty.xml文件中,包含一个Context Handler集合和默认Handler。Context Handler集合通过上下文路径和部署Context Handler和Web Application Context的路径选择下一个handler。默认Handler处理其它handler不处理的请求和产生404页面的请求。其它一些配置文件可以添加handler到handler树(例如:jetty-rewrite.xml、jetty-requestlog.xml)或者配置组件到热部署handler(例如:jetty-deploy.xml)。
3)Server Attributes
server拥有一个字符串和对象的map,以供其它Jetty组件能把指定的对象和server联系在一起,如果这些对象实现了LifeCycle接口,他们将和server一起开始和停止。
4)Server fields
server也有一些特性的配置域,在etc/jetty.xml中设置,用于控制其它事情中,HTTP响应的日期和版本。
5)Connectors
Server拥有一个connector的集合,用于接收HTTP和Jetty支持的其它协议的连接。
6)Services
server能拥有额外的服务对象,有时作为attributes,但更多是作为LifeCycle beans。例如Login Services和DataSources,你在server级配置,然后注入它们到web应用使用它们。
配置Connectors
Jetty Server Connector是一个网络终端,用于接收一个或多个协议发起的连接,这个协议为Jetty Server产生请求和/或消息。在标准Jetty Server发布版本中,支持多种协议和协议的融合:jetty-http.xml,jetty-https.xml和jetty-spdy.xml。你通常需要配置:
1)Port
连接器监听的TCP/IP端口,对应属性jetty.port(或者jetty.tls.port),如果没有发现,则使用默认值8080(TLS默认为8443).
2)Host
你能配置主机作为主机名或者IP地址。如果不设置,或者设置为0.0.0.0,连接器将监听所有本地接口。对应属性jetty.host。
3)Idle Timeout
连接处于空闲状态达到这个时间,连接将被连接器关闭,单位毫秒。
4)HTTP Configuration
HTTP配置。标准Jetty Server发布版本在jetty.xml文件中创建了一个HttpConfiguration,能在连接器文件中通过XML Ref元素使用。
5)SSL Context Factory
如果使用TLS连接器类型(HTTPS和SPDY),需要配置SSL Context Factory,用于获取服务端认证信息。
配置上下文
Jetty上下文是一个处理器,一个上下文尅包含标准Jetty处理器或者自定义应用处理器。所有上下文都需要配