zoukankan      html  css  js  c++  java
  • jetty简介

    Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。
    特性

    易用性

    易用性是 Jetty 设计的基本原则,易用性主要体现在以下几个方面:
    通过 XML 或者 API 来对Jetty进行配置;默认配置可以满足大部分的需求;将 Jetty 嵌入到应用程序当中只需要非常少的代码;

    可扩展性

    在使用了 Ajax 的 Web 2.0 的应用程序中,每个连接需要保持更长的时间,这样线程和内存的消耗量会急剧的增加。这就使得我们担心整个程序会因为单个组件陷入瓶颈而影响整个程序的性能。但是有了 Jetty:
    即使在有大量服务请求的情况下,系统的性能也能保持在一个可以接受的状态。利用 Continuation 机制来处理大量的用户请求以及时间比较长的连接。 另外 Jetty 设计了非常良好的接口,因此在 Jetty 的某种实现无法满足用户的需要时,用户可以非常方便地对 Jetty 的某些实现进行修改,使得 Jetty 适用于特殊的应用程序的需求。

    易嵌入性

    Jetty 设计之初就是作为一个优秀的组件来设计的,这也就意味着 Jetty 可以非常容易的嵌入到应用程序当中而不需要程序为了使用 Jetty 做修改。从某种程度上,你也可以把 Jetty 理解为一个嵌入式的Web服务器。
    Jetty 可以作为嵌入式服务器使用,Jetty的运行速度较快,而且是轻量级的,可以在Java中可以从test case中控制其运行。从而可以使自动化测试不再依赖外部环境,顺利实现自动化测试。
     
    代码实例编辑
    作为嵌入式服务器使用代码实例
    Java代码
    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
    26
    27
    //代码:以嵌入模式启动Jetty
    importorg.mortbay.http.HttpContext;
    importorg.mortbay.http.HttpServer;
    importorg.mortbay.http.SocketListener;
    importorg.mortbay.http.handler.ResourceHandler;
      
    publicclassJettySample{
    publicstaticvoidmain(String[]args)throwsException{
    //创建JettyHttpServer对象
    HttpServerserver=newHttpServer();
    //在端口8080上给HttpServer对象绑上一个listener,使之能够接收HTTP请求
    SocketListenerlistener=newSocketListener();
    listener.setPort(8080);
    server.addListener(listener);
    //创建一个HttpContext,处理HTTP请求。
    HttpContextcontext=newHttpContext();
    //用setContextPath把Context映射到(/web)URL上。
    context.setContextPath("/web");
    //setResourceBase方法设置文档目录以提供资源
    context.setResourceBase("C:\j2sdk1.4.1_05");
    //添加资源处理器到HttpContext,使之能够提供文件系统中的文件
    context.addHandler(newResourceHandler());
    server.addContext(context);
    //启动服务器
    server.start();
    }
    }
    需要的jar包:
    commons-logging.jar
    javax.servlet.jar
    org.mortbay.jetty.jar
    org.mortbay.jmx.jar
    jetty还有对应maven插件
    maven pom文件的设置:
    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
    26
    27
    28
    29
    30
    31
    32
    <?xmlversion="1.0"encoding="utf-8"?>
      
    <plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>maven-jetty-plugin</artifactId>
    <version>6.1.10</version>
    <configuration>
    <scanIntervalSeconds>10</scanIntervalSeconds>
    <stopKey>foo</stopKey>
    <stopPort>9999</stopPort>
    </configuration>
    <executions>
    <execution>
    <id>start-jetty</id>
    <phase>pre-integration-test</phase>
    <goals>
    <goal>run</goal>
    </goals>
    <configuration>
    <scanIntervalSeconds>0</scanIntervalSeconds>
    <daemon>true</daemon>
    </configuration>
    </execution>
    <execution>
    <id>stop-jetty</id>
    <phase>post-integration-test</phase>
    <goals>
    <goal>stop</goal>
    </goals>
    </execution>
    </executions>
    </plugin>
    然后直接通过mvn jetty:run命令就能直接启动
    -----------------------------------------------------------------------------------------
    注:
    在maven中,用plugin的方式使用jetty,需要改动maven的setting.xml文件,才可以使用命令mvn jetty:run.
    setting.xml中找到标签<pluginGroups>,增加:
    1
    <pluginGroup>org.mortbay.jetty</pluginGroup>
    即可。
  • 相关阅读:
    loadrunner 字符集与检查点的探讨
    oracle使用游标进行循环数据插入
    QTP之WinMenu对象的测试
    VBS数组深入浅出
    Loadrunner 如何访问数据库
    loadrunner字符串处理函数
    动态SQL现实一个表中求多列的和
    oracle中WMSYS.WM_CONCAT函数的版本差异
    强制卸载LINUX系统自带JDK
    loadrunner调用QTP脚本来实现性能测试(一次现场特殊需求的解决方案)
  • 原文地址:https://www.cnblogs.com/lowerCaseK/p/jetty.html
Copyright © 2011-2022 走看看