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的开发过程,现举一个简单的例子,该例子的源代码可以在上查看。
现在把创建该示例的过程记录下来,供以后参考。
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. 最后运行该项目并在浏览器中输入""可以参看效果。
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!");
}
}
}
|
阅读(2184) | 评论(0) | 转发(0) |