首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

实战 Jetty(1)

实战 Jetty(1)

特性简介易用性易用性是 Jetty 设计的基本原则,易用性主要体现在以下几个方面:
  • 通过 XML 或者 API 来对 Jetty 进行配置;
  • 默认配置可以满足大部分的需求;
  • 将 Jetty 嵌入到应用程序当中只需要非常少的代码;
可扩展性在使用了 Ajax 的 Web 2.0 的应用程序中,每个连接需要保持更长的时间,这样线程和内存的消耗量会急剧的增加。这就使得我们担心整个程序会因为单个组件陷入瓶颈而影响整个程序的性能。但是有了 Jetty:
  • 即使在有大量服务请求的情况下,系统的性能也能保持在一个可以接受的状态。
  • 利用 Continuation 机制来处理大量的用户请求以及时间比较长的连接。
另外 Jetty 设计了非常良好的接口,因此在 Jetty 的某种实现无法满足用户的需要时,用户可以非常方便地对 Jetty 的某些实现进行修改,使得 Jetty 适用于特殊的应用程序的需求。
易嵌入性Jetty 设计之初就是作为一个优秀的组件来设计的,这也就意味着 Jetty 可以非常容易的嵌入到应用程序当中而不需要程序为了使用 Jetty 做修改。从某种程度上,你也可以把 Jetty 理解为一个嵌入式的Web服务器。
部署应用程序将自己的应用程序部署到 Jetty 上面是非常简单的,首先将开发好的应用程序打成 WAR 包放到 Jetty 的 Webapps 目录下面。然后用如下的命令来启动 Jetty 服务器:Java –jar start.jar, 在启动服务器后。我们就可以访问我们的应用程序了,Jetty 的默认端口是 8080,WAR 的名字也就是我们的应用程序的 Root Context。例如一个典型的 URL 就是:http://127.0.0.1:8080/sample/index.jsp
如何将 Jetty 嵌入到程序当中将 Jetty 嵌入到程序当中是非常简单的, 如 代码 1 所示:首先我们创建一个 Server 对象, 并设置端口为 8080,然后为这个 Server 对象添加一个默认的 Handler。接着我们用配置文件 jetty.xml 对这个 server 进行设置,最后我们使用方法 server.start() 将 Server 启动起来就可以了。从这段代码可以看出,Jetty 是非常适合用于作为一个组件来嵌入到我们的应用程序当中的,这也是 Jetty 的一个非常重要的特点。
清单 1. 代码片断
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class JettyServer {

    public static void main(String[] args) {
        Server server = new Server(8080);
        server.setHandler(new DefaultHandler());
        XmlConfiguration configuration = null;
        try {
            configuration = new XmlConfiguration(
                new FileInputStream("C:/development/Jetty/jetty-6.1.6rc0/etc/jetty.xml"));
        } catch (FileNotFoundException e1) {
            e1.printStackTrace();
        } catch (SAXException e1) {
            e1.printStackTrace();
        } catch (IOException e1) {
            e1.printStackTrace();
        }
         
        try {   
            configuration.configure(server);
            server.start();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}




接下来我们分析一下 Jetty Server 是如何启动的。首先我们注意到 Server 类,这个类实际上继承了 HttpServer, 当启动 Jetty 服务器的时候,就是说,在 Jetty 根目录下的命令行下如果输入 java -jar start.jar etc/jetty.xml,注意这里有一个配置文件 jetty.xml 做为运行参数,这个参数也可以是其它的配置文件,可以是多个 XML 配置文件,其实这个配置文件好比我们使用 Struts 时的 struts-config.xml 文件,将运行 Server 需要用到的组件写在里面,比如上一节中 HttpServer 的配置需要的组件类都可以写在这个配置文件中。按上述方法启动 Jetty Server 时,就会调用 Server 类里面的 main 方法,这个入口方法首先会构造一个 Server 类实例(其实也就构造了一个 HttpServer),创建实例的过程中就会构造 XmlConfiguration 类的对象来读取参数配置文件,之后再由这个配置文件产生的 XmlConfiguration 对象来配置这个 Server,配置过程其实是运用了 Java 的反射机制,调用 Server 的方法并传入配置文件中所写的参数来向这个 Server 添加 HttpListener,HttpContext,HttpHandler,以及 Web Application(对应于我们的 Web 应用)。
返回列表