本例只是以HttpServlet方式实现,更多的方式可以通过http://wiki.eclipse.org/Jetty/Tutorial/Embedding_Jetty查看
注意里面的HttpClient为eclipse的HttpClient,非apache的HttpClient
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.util.thread.ExecutorThreadPool;
/**
* 本例为Jetty内嵌Http服务器
*
*/
public class ServletContext {
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
// 设置为线程池,默认是阻塞队列
server.setThreadPool(new ExecutorThreadPool(25, 50, 30000));
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/benx");
server.setHandler(context);
context.addServlet(new ServletHolder(new HelloServlet("A")), "/A");
context.addServlet(new ServletHolder(new HelloServlet("B")), "/B");
server.start();
server.join();
}
}
class HelloServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private String greeting = "Hello World";
public HelloServlet() {
}
public HelloServlet(String greeting) {
this.greeting = greeting;
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("收到请求");
response.setContentType("text/html");
response.setStatus(HttpServletResponse.SC_OK);
response.getWriter().println("<h1>" + greeting + "</h1>");
response.getWriter().println("session=" + request.getSession(true).getId());
response.getWriter().flush();
System.out.println("请求处理完成");
}
}
import org.eclipse.jetty.client.ContentExchange;
import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.HttpExchange;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
/**
* 异步请求http
* @author jin.xiong
*
*/
public class SynchronousExchange {
public static void main(String[] args) throws Exception {
HttpClient client = new HttpClient();
client.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
client.setMaxConnectionsPerAddress(2); // 设置最大并发数
client.setThreadPool(new QueuedThreadPool(2)); // 设置最大线程池
client.setTimeout(30000); // 设置超时时间,超过将调用
client.start();
for (int i = 0; i < 1000; i++) {
ContentExchange exchange = new ContentExchange(true);
exchange.setURL("http://localhost:8080/benx/A");
client.send(exchange);
int exchangeState = exchange.waitForDone();
if (exchangeState == HttpExchange.STATUS_COMPLETED) {
System.out.println("请求完成");
System.out.println(exchange.getResponseContent());
} else if (exchangeState == HttpExchange.STATUS_EXCEPTED) {
System.out.println("请求错误");
} else if (exchangeState == HttpExchange.STATUS_EXPIRED) {
System.out.println("请求超时");
}
System.out.println(exchangeState);
}
System.out.println("end");
client.stop();
}
}
}
分享到:
相关推荐
在“Jetty内嵌服务器实例”中,我们可以学习到以下关键知识点: 1. **Jetty服务器基础**:了解Jetty的基本架构和功能,包括它如何处理HTTP请求和响应,以及如何加载和执行Servlet。 2. **内嵌Jetty的实现**:学习...
让我们深入探讨如何将Jetty内嵌到Java代码中,以及这一过程涉及的关键知识点。 1. **Jetty简介** - Jetty是一个开源的HTTP服务器和Servlet容器,支持最新的Servlet规范,如Servlet 4.0。 - 它以其轻量级、模块化...
在"jetty内嵌实现"的场景下,我们可以直接将Jetty集成到我们的Java应用中,避免了传统方式下需要将应用部署到独立的Web服务器(如Tomcat)的步骤。这种方式尤其适用于测试、开发环境,甚至小型生产环境,因为它简化...
这通常涉及使用Spring MVC作为控制器层,内嵌Jetty作为Web服务器,以及Maven作为项目管理工具。下面将详细解释这些关键知识点: 1. **Spring MVC**: Spring MVC是Spring框架的一部分,它提供了一个用于构建Web...
- Jetty是由Eclipse基金会维护的开源项目,它提供了HTTP服务器、Servlet容器和WebSocket服务器等功能。 - 与Tomcat等其他服务器相比,Jetty具有更小的内存占用、更快的启动速度和更低的资源消耗。 - 它支持最新的...
压缩包文件`jettydemo`可能包含了一个完整的Jetty内嵌式运行的示例项目。这个项目可能包括了Java源代码、Web应用资源(如HTML、CSS、JavaScript文件)以及必要的配置文件。解压后,你可以通过阅读代码来理解如何设置...
Jetty 是一个轻量级、高性能的开源 HTTP 服务器和 Java Servlet 容器,它被广泛用于各种类型的 web 应用程序,包括 RESTful API、静态资源服务和动态内容渲染。 在 Spring Boot 中集成 Jetty,开发者只需要在项目...
在Java开发中,Jetty以其简单易用和灵活性著称,使得开发者能够快速地搭建和配置HTTP服务器,处理HTTP请求,支持WebSocket等现代Web技术。 在"jetty实例"中,我们将探讨如何使用Jetty来接收JSON数据,并从中提取...
在IT行业中,开发Java Web应用程序时,我们常常使用Eclipse作为IDE,Maven作为构建工具,而Jetty则是一个轻量级的嵌入式HTTP服务器,适用于快速部署和测试。这篇博客“Eclipse+Maven创建webapp项目集成jetty服务器”...
Jetty是一个开源项目,提供了http服务器、http客户端和java servlet容器。 这个wiki提供jetty的入门教程、基础配置、功能特性、优化、安全、JavaEE、监控、常见问题、故障排除帮助等等。它包含教程、使用手册、视频...
1. **嵌入式Jetty**:Jetty是一个轻量级、开源的HTTP服务器和Servlet容器,常用于Java应用。嵌入式Jetty允许我们将Jetty直接集成到应用程序中,无需单独部署或管理服务器进程。 2. **Struts2**:这是一个流行的MVC...
4. **Embedding API**:Jetty提供了一组API,使得在Java应用程序中轻松地内嵌和控制Jetty服务器成为可能。 5. **Admin Console**:Hightide通常包括一个管理控制台,用于监控和管理Jetty服务器,包括查看日志、配置...
Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器。它可以直接嵌入到Java应用程序中,无需单独的Web服务器,这使得项目部署更加便捷。Jetty支持最新的Servlet和JSP规范,并且因其低内存占用和高并发能力而...
Jetty是一款轻量级的开源HTTP服务器和Servlet容器,广泛用于开发Java Web应用程序。在Java社区中,Jetty以其高效、小巧和模块化的设计而备受青睐。Jetty 7.0是其历史上的一个重要版本,提供了许多关键特性和改进。 ...
**Jetty** 是一个轻量级、高性能的开源HTTP服务器和Servlet容器。它不依赖于任何特定的应用服务器,可以独立运行或嵌入到其他Java应用中。Jetty以其小巧、快速和易于配置而闻名,常被用于测试、原型设计以及那些不...
Jetty Tools是一个专门为Java开发人员设计的嵌入式Web服务器和HTTP服务器,它以其轻量级、高效和灵活的特点在IT行业中备受青睐。这个工具集允许开发者将Web服务器功能直接集成到他们的应用程序中,从而避免了传统...
Jetty是一个轻量级、高效的嵌入式Java HTTP服务器和Servlet容器,它被广泛用于各种项目,从简单的HTTP服务到复杂的Web应用。本工具利用Jetty作为基础,提供了一种对Java应用性能进行深入洞察的方式。 该工具的核心...
Jetty可以通过内嵌H2数据库,为Web应用程序提供数据存储服务。这通常涉及到配置一个`ServletContextHandler`,加载一个名为`DBServlet`的Servlet,该Servlet可以直接与H2数据库进行交互。 在测试Jetty程序时,你...
Spring Boot的核心特性包括自动配置、内嵌Web服务器(如Tomcat或Jetty)以及对各种Spring生态系统的支持,使得构建图片服务器变得轻而易举。 构建图片服务器的关键组件包括: 1. **图片存储**:图片服务器需要一个...
Jetty是一个开源的HTTP服务器,它实现了Java Servlet和JavaServer Pages (JSP) 规范,允许开发者在Java环境中搭建Web服务。与Tomcat等其他Servlet容器相比,Jetty以其小巧、快速和灵活的特点著称,尤其适合嵌入式...