`
benx
  • 浏览: 276912 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Jetty内嵌Http服务器

    博客分类:
  • java
 
阅读更多
本例只是以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内嵌服务器实例

    在“Jetty内嵌服务器实例”中,我们可以学习到以下关键知识点: 1. **Jetty服务器基础**:了解Jetty的基本架构和功能,包括它如何处理HTTP请求和响应,以及如何加载和执行Servlet。 2. **内嵌Jetty的实现**:学习...

    jetty内嵌到java代码启动

    让我们深入探讨如何将Jetty内嵌到Java代码中,以及这一过程涉及的关键知识点。 1. **Jetty简介** - Jetty是一个开源的HTTP服务器和Servlet容器,支持最新的Servlet规范,如Servlet 4.0。 - 它以其轻量级、模块化...

    jetty内嵌实现

    在"jetty内嵌实现"的场景下,我们可以直接将Jetty集成到我们的Java应用中,避免了传统方式下需要将应用部署到独立的Web服务器(如Tomcat)的步骤。这种方式尤其适用于测试、开发环境,甚至小型生产环境,因为它简化...

    自己构建微服务(springmvc+内嵌jetty+maven 环境配置)

    这通常涉及使用Spring MVC作为控制器层,内嵌Jetty作为Web服务器,以及Maven作为项目管理工具。下面将详细解释这些关键知识点: 1. **Spring MVC**: Spring MVC是Spring框架的一部分,它提供了一个用于构建Web...

    JAVA里使用Jetty作为轻量级嵌入式的Web容器

    - Jetty是由Eclipse基金会维护的开源项目,它提供了HTTP服务器、Servlet容器和WebSocket服务器等功能。 - 与Tomcat等其他服务器相比,Jetty具有更小的内存占用、更快的启动速度和更低的资源消耗。 - 它支持最新的...

    jetty8+ 内嵌式启动运行demo

    压缩包文件`jettydemo`可能包含了一个完整的Jetty内嵌式运行的示例项目。这个项目可能包括了Java源代码、Web应用资源(如HTML、CSS、JavaScript文件)以及必要的配置文件。解压后,你可以通过阅读代码来理解如何设置...

    spring boot内置jetty

    Jetty 是一个轻量级、高性能的开源 HTTP 服务器和 Java Servlet 容器,它被广泛用于各种类型的 web 应用程序,包括 RESTful API、静态资源服务和动态内容渲染。 在 Spring Boot 中集成 Jetty,开发者只需要在项目...

    jetty嵌入式实例

    在Java开发中,Jetty以其简单易用和灵活性著称,使得开发者能够快速地搭建和配置HTTP服务器,处理HTTP请求,支持WebSocket等现代Web技术。 在"jetty实例"中,我们将探讨如何使用Jetty来接收JSON数据,并从中提取...

    Eclipse+Maven创建webapp项目集成jetty服务器

    在IT行业中,开发Java Web应用程序时,我们常常使用Eclipse作为IDE,Maven作为构建工具,而Jetty则是一个轻量级的嵌入式HTTP服务器,适用于快速部署和测试。这篇博客“Eclipse+Maven创建webapp项目集成jetty服务器”...

    Jetty中文手册

    Jetty是一个开源项目,提供了http服务器、http客户端和java servlet容器。 这个wiki提供jetty的入门教程、基础配置、功能特性、优化、安全、JavaEE、监控、常见问题、故障排除帮助等等。它包含教程、使用手册、视频...

    在嵌入式jetty环境下运行struts2Annotation项目

    1. **嵌入式Jetty**:Jetty是一个轻量级、开源的HTTP服务器和Servlet容器,常用于Java应用。嵌入式Jetty允许我们将Jetty直接集成到应用程序中,无需单独部署或管理服务器进程。 2. **Struts2**:这是一个流行的MVC...

    jetty-hightide-8.1.15.v20140411.zip

    4. **Embedding API**:Jetty提供了一组API,使得在Java应用程序中轻松地内嵌和控制Jetty服务器成为可能。 5. **Admin Console**:Hightide通常包括一个管理控制台,用于监控和管理Jetty服务器,包括查看日志、配置...

    嵌入jetty的springMVC可运行jar的REST+

    Jetty是一个轻量级、高性能的开源HTTP服务器和Servlet容器。它可以直接嵌入到Java应用程序中,无需单独的Web服务器,这使得项目部署更加便捷。Jetty支持最新的Servlet和JSP规范,并且因其低内存占用和高并发能力而...

    Jetty 7.0 API 和 源文件解析

    Jetty是一款轻量级的开源HTTP服务器和Servlet容器,广泛用于开发Java Web应用程序。在Java社区中,Jetty以其高效、小巧和模块化的设计而备受青睐。Jetty 7.0是其历史上的一个重要版本,提供了许多关键特性和改进。 ...

    jsf-jetty:这是一个JSF Web项目,内嵌了Jetty服务器;

    **Jetty** 是一个轻量级、高性能的开源HTTP服务器和Servlet容器。它不依赖于任何特定的应用服务器,可以独立运行或嵌入到其他Java应用中。Jetty以其小巧、快速和易于配置而闻名,常被用于测试、原型设计以及那些不...

    jetty tools

    Jetty Tools是一个专门为Java开发人员设计的嵌入式Web服务器和HTTP服务器,它以其轻量级、高效和灵活的特点在IT行业中备受青睐。这个工具集允许开发者将Web服务器功能直接集成到他们的应用程序中,从而避免了传统...

    基于jetty嵌入式容器的java性能分析工具,内嵌H2 database,以图表形式直观展.zip

    Jetty是一个轻量级、高效的嵌入式Java HTTP服务器和Servlet容器,它被广泛用于各种项目,从简单的HTTP服务到复杂的Web应用。本工具利用Jetty作为基础,提供了一种对Java应用性能进行深入洞察的方式。 该工具的核心...

    jetty 测试程序

    Jetty可以通过内嵌H2数据库,为Web应用程序提供数据存储服务。这通常涉及到配置一个`ServletContextHandler`,加载一个名为`DBServlet`的Servlet,该Servlet可以直接与H2数据库进行交互。 在测试Jetty程序时,你...

    图片服务器

    Spring Boot的核心特性包括自动配置、内嵌Web服务器(如Tomcat或Jetty)以及对各种Spring生态系统的支持,使得构建图片服务器变得轻而易举。 构建图片服务器的关键组件包括: 1. **图片存储**:图片服务器需要一个...

    JettyTest.rar

    Jetty是一个开源的HTTP服务器,它实现了Java Servlet和JavaServer Pages (JSP) 规范,允许开发者在Java环境中搭建Web服务。与Tomcat等其他Servlet容器相比,Jetty以其小巧、快速和灵活的特点著称,尤其适合嵌入式...

Global site tag (gtag.js) - Google Analytics