开源servlet容器——Jetty

如果让一个人说出一种开源的servlet容器,他的回答可能是Apache Tomcat。但是,Tomcat并不是孤单的,我们还有JettyJetty 是一个使用Java语言编写的开源的servlet容器,它为基于Javaweb内容如JSPservlet提供运行环境。Jetty作为可选的servlet容器只是一个额外的功能,而它真正出名是因为它是作为一个可以嵌入到其他的Java代码中的servlet容器而设计的。这就是说,开发小组将Jetty作为一组Jar文件提供出来,因此你可以在你自己的代码中将servlet容器实例化成一个对象并且可以操纵这个容器对象。

Jettyservlet容器中算不上一个新面孔,它从1998年就已经崭露头角。Jetty的发布遵循了Apache 2.0的开源协议,你可以在免费软件和商业软件中使用Jetty

下面将介绍在MyEclipse 6.5下使用jetty的全过程。

环境:Windows XP + JDK 1.6.11 + MyEclipse 6.5 + jetty-7.0.0pre3

1. 打开myEclipse, 新建java工程Jetty,建立webapps logs文件夹(src同级),在src下建立configservlettest文件夹,在webapps建立manage目录作为web工作目录。

2. ${ROOT}\jetty-7.0.0pre3\lib下的三个jar包加入工程的classpath,将${Root}:\jetty-7.0.0pre3\lib\jsp-2.1下的四个jar包加入工程的classpathcopy ${ROOT}\jetty-7.0.0pre3\etc下的jetty.xml, webdefault.xmlrealm.propertiessrc\config下,同时copy ${ROOT}\jetty-7.0.0pre3\contexts下的test.xmlsrc\config下并改名为manage.xml

3. 修改jetty.xml, manage.xml,将这些配置文件中带有jetty.xmlwebdefault.xmlrealm.properties的路径改为src\config,并在webapps/manage下新建index.jsp

4. test目录下新建Start.java,代码如下:
import org.mortbay.jetty.*;

import java.io.*;

import org.mortbay.jetty.handler.*;

import org.mortbay.xml.*;

public class start {

       public static void main(String args[]) {

              Server server = new Server(8080);

        server.setHandler(new DefaultHandler());

        XmlConfiguration cfg = null;

        try {

            cfg = new XmlConfiguration(new FileInputStream("./src/com/greysh/config/jetty.xml"));

            cfg.configure(server);

            server.start();

            System.out.println("Jetty Started ...");

          

        } catch (FileNotFoundException e) {

            e.printStackTrace();

        }

          catch (IOException e) {

            e.printStackTrace();

        } catch (Exception e) {

            e.printStackTrace();

        }       

       }

}

运行Start类,用IE访问http://localhost:8080/, 点击/manage ---> org.mortbay.jetty.webapp.WebAppContext@1275d39{/manage,file:/D:/Program%20Files/MyEclipse%206.5/workspace/Jetty/webapps/manage/} ,此时Jetty就可以成功运行了。

如果要在Jetty中运行servlet,操作过程如下:

<!--[if !supportLists]-->1.       <!--[endif]-->webapps/manage下建立WEB-INF, 并新建web.xml用于配置servlet, 同时将contexts下的webdefalut.xml的内容copyweb.xml里。

<!--[if !supportLists]-->2.       <!--[endif]-->修改contexts下的manage.xml,在webapps目录下写jsp程序,并在servlet目录下写相应的servlet处理程序,同时在web.xml里进行配置。

<!--[if !supportLists]-->3.       <!--[endif]--> 运行Start类,用IE访问http://localhost:8080/, 点击/manage ---> org.mortbay.jetty.webapp.WebAppContext@bb05de

到此Jetty运行servlet成功  

参考文献:

http://www.matrix.org.cn/resource/article/2006-08-14/Jetty_44588.html

http://www.diybl.com/course/3_program/java/javajs/2008828/138180.html

This entry was posted in Java and tagged . Bookmark the permalink.

One Response to 开源servlet容器——Jetty

  1. Aslan says:

    这个挺有意思的,我是在Grails里面发现这个用的是这个server的

发表评论

您的电子邮箱不会被公开。 标记为 * 的区域必须填写

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>