免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3038 | 回复: 0
打印 上一主题 下一主题

使用Jetty创建一个简单的web服务器 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-18 15:38 |只看该作者 |倒序浏览

                Jetty是用纯java语言编写的开源软件,它具有如下功能:
1. 提供Http服务器功能;
2. 提供http客户端功能;
3. 提供javax.servlet容器功能。
同时Jetty可以嵌入到Java项目中,为java项目提供web功能,因此,与使用Apache + Tomcat实现web服务器相比,是有Jetty更容易部署。
Jetty的结构如下图所示:


上图所示,Jetty
Server是Connector和Handler之间的通道,其中Connector用来接收http连接,Handler用来接收http连接的请求
并产生响应信息。处理http请求的过程由单独的线程来完成,这些线程由ThreadPool来管理。
为了初步了解基于Jetty的开发过程,现举一个简单的例子,该例子的源代码可以在http://jetty.mortbay.org/xref/org/mortbay/jetty/example/OneHandler.html上查看。
现在把创建该示例的过程记录下来,供以后参考。
1. 在eclipse上创建一个Java Project,命名为JettyDemo;
2. 在JettyDemo项目的库目录中添加jetty-6.1.19.jar, jetty-util-6.1.19.jar,
   servlet-api-2.5-20081211.jar.添加完成后项目的.classpath文件内容类似下图:

3. 在项目中添加一个java文件,内容见后面的源代码,需要注意的是该文件需要引入的一些包;
4. 最后运行该项目并在浏览器中输入"http://localhost:8080"可以参看效果。
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Handler;
import org.mortbay.jetty.HttpConnection;
import org.mortbay.jetty.Request;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.bio.SocketConnector;
import org.mortbay.jetty.handler.AbstractHandler;
public class OneHandler {
    public static void main(String[] args) throws Exception {
        Server server = new Server();
        Connector connector = new SocketConnector();
        connector.setPort(8080);
        server.setConnectors(new Connector[] { connector });
        Handler handler = new HelloHandler();
        server.setHandler(handler);
        server.start();
        server.join();
    }
    public static class HelloHandler extends AbstractHandler {
        public void handle(String target, HttpServletRequest request,
                HttpServletResponse response, int dispatch) throws IOException,
                ServletException {
            Request base_request = (request instanceof Request) ? (Request) request
                    : HttpConnection.getCurrentConnection().getRequest();
            base_request.setHandled(true);
            response.setContentType("text/html");
            response.setStatus(HttpServletResponse.SC_OK);
            response.getWriter().println("Hello LYG!");
        }
    }
}
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/98865/showart_2000039.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP