jetty+结构解析

jetty作为可嵌入的组件使用有很大的灵活性，下面以一段代码来解释jetty工作流程和设计原理： code format="java" Server server = new Server(8080);

ResourceHandler resource_handler=new ResourceHandler {           protected void doDirectory(HttpServletRequest request, HttpServletResponse response,                                                                  Resource resource) throws IOException {               String listing=resource.getListHTML(request.getRequestURI,                                                               request.getPathInfo.lastIndexOf("/")>0); response.setContentType("text/html; charset=UTF-8"); response.getWriter.println(listing); }       };

resource_handler.setResourceBase(".");

HandlerList handlers = new HandlerList; handlers.setHandlers(new Handler[]{resource_handler,new DefaultHandler}); server.setHandler(handlers);

server.start; server.join; code 类 org.mortbay.jetty.Server 实现了四个接口： 其 中接口 org.mortbay.component.LifeCycle 定义了一个类的生命周期，提供启动，关闭，判断处于哪个生命阶段的功能，是 Server，Connector，Handler，HandlerContainer，Attributes等所有需要启动，关闭的接口或类的根. 下面是类层次结构图： jetty服务启动的顺序如图： Server启动时做了以下工作：
 * org.mortbay.component.LifeCycle
 * org.mortbay.jetty.Handler
 * org.mortbay.jetty.HandlerContainer
 * org.mortbay.util.Attributes
 * 1) 初始化并启动UserRealm（用于Jetty安全管理）.
 * 2) 初始化并启动SessionIdManager（HttpSession管理器）.
 * 3) 初始化并启动ThreadPool（线程池）.
 * 4) 初始化并启动Handler（处理来自浏览器的请求）.
 * 5) 初始化并启动Connector（连接器，用于监听并接收来自浏览器的请求）.