`
benx
  • 浏览: 272170 次
  • 性别: 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服务器内嵌实例,运行JettTest后即可访问

    jetty内嵌到java代码启动

    jetty容器内嵌到java代码中,通过代码控制启动,方便开发调试

    jetty内嵌实现

    jetty内嵌实现,手动启动 WEB服务,不用发布到服务器上就可以访问。

    使用jetty内嵌方式发布jsf的demo

    由于以前写了个jetty内嵌的服务器,需要在其上面添加JSF的东西 试了好久,终于调通了,拿出来给大家分享一下 本demo是使用jetty内嵌的方式发布的jsf的demo 整个demo是工程整个打包,包含所有的jar包,包括使用的...

    i-Jetty手机端服务器

    移动端的服务器 Jetty android 服务器 i-Jetty

    jetty-http-9.4.11.v20180605-API文档-中英对照版.zip

    赠送jar包:jetty-http-9.4.11.v20180605.jar; 赠送原API文档:jetty-http-9.4.11.v20180605-javadoc.jar; 赠送源代码:jetty-http-9.4.11.v20180605-sources.jar; 赠送Maven依赖信息文件:jetty-...

    Android-I-Jetty服务器部署例子代码

    Android-I-Jetty服务器部署例子代码,第一运行起来I-Jetty服务器以后,一定想要例子测试一下;

    jetty的http包

    这个包里面包含jetty的http包,最新版的(至今)jetty-7.0,里面根本没有http相关的包,我在进行junit in action学习中,有一个实例JettySample及相关jetty的例子,都必须用到.后来网络上费了很大的劲才找到,很不容易!

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

    NULL 博文链接:https://fuaotech.iteye.com/blog/2292707

    jetty-http-9.3.19.v20170502-API文档-中文版.zip

    赠送jar包:jetty-http-9.3.19.v20170502.jar; 赠送原API文档:jetty-http-9.3.19.v20170502-javadoc.jar; 赠送源代码:jetty-http-9.3.19.v20170502-sources.jar; 赠送Maven依赖信息文件:jetty-...

    jetty-http-7.4.2.v20110526.jar

    jetty-http-7.4.2.v20110526.jar jetty-http 服务jar包

    jetty服务器

    该资源文件中有jetty服务器安装包,还有eclipse jetty插件,以及配置文档,文档中包含idea的配置和eclipse的配置及跑起web项目的过程。仅供大家下载参考,不知道的可以给我留言。

    jetty嵌入式服务器必须的jar包

    jetty嵌入式服务器开发所必须的jar包,本人使用jetty版本为6.1.3,jar包总数为9个,来自jetty:commons-el-1.0.jar,jasper-compiler-5.5.15,jasper-compiler-jdt-5.5.15.jar,jasper-runtime-5.5.15.jar,jetty-...

    jetty 服务器

    jetty 服务器,解压放到任意文件夹,配置路劲即可,。

    jetty 服务器使用

    jetty 服务器使用

    jetty嵌入式服务器实例大全

    java jetty嵌入式服务器实例大全,包括文件资源、servlet、xml配置服务器、war包、多端口监听等实例。

    应用程序内嵌Jetty HTTP服务

    代码纯原创,通过本demo,可以轻松实现在应用程序中,利用Jetty去监听某个HTTP请求端口或者服务。 例如让本地应用程序不依赖于任何的Server,就能提供本地化的请求服务localhost:8080/omi/event.

    jetty-http-9.4.43.v20210629-API文档-中英对照版.zip

    赠送jar包:jetty-http-9.4.43.v20210629.jar; 赠送原API文档:jetty-http-9.4.43.v20210629-javadoc.jar; 赠送源代码:jetty-http-9.4.43.v20210629-sources.jar; 赠送Maven依赖信息文件:jetty-...

    jetty服务器性能调整过程分析

    jetty服务器性能调整过程分析jetty服务器性能调整过程分析jetty服务器性能调整过程分析jetty服务器性能调整过程分析

    应用服务器jetty8.0

    该资料包含:jetty8.0版本 该资料由明瑞教育黄老师出品

Global site tag (gtag.js) - Google Analytics