jetty服务器是十分优秀的java web应用服务器,支持的java的 jsp和 servlet标准,跟tomcat一样很受欢迎,,另外jetty更轻量一些,允许将jetty嵌入到程序中执行,在某些场景下十分有用。
jetty嵌入式环境的使用
内置jetty服务器
package com.gbcom.frame.jetty.demo;
import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.server.handler.DefaultHandler;
import org.eclipse.jetty.server.handler.HandlerCollection;
import org.eclipse.jetty.server.nio.SelectChannelConnector;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
/**
* 创建服务器:
* 启动服务,通过浏览器访问: http://localhost:8888/index 和 http://localhost:8888/hello
*
*
* mvn 参考:2.0. 添加依赖
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.aggregate</groupId>
<artifactId>jetty-all</artifactId>
<version>7.6.9.v20130131</version>
</dependency>
如果在应用中使用到jsp的话需要添加jetty-jsp依赖,在jetty-all中并为聚合jetty-jsp模块。
* @author SYZ
* @date 2016-2-23 上午09:54:01
* @version 1.0.0
* @see com.gbcom.frame.jetty.demo.EmbedJettyServer
*/
public class EmbedJettyServer {
public static void main(String[] args) throws Exception {
// 创建Server
Server server = new Server();
// 添加ThreadPool
QueuedThreadPool queuedThreadPool = new QueuedThreadPool();
queuedThreadPool.setName("queuedTreadPool");
queuedThreadPool.setMinThreads(10);
queuedThreadPool.setMaxThreads(200);
server.setThreadPool(queuedThreadPool);
// 添加Connector
SelectChannelConnector connector = new SelectChannelConnector();
connector.setPort(8888);
connector.setAcceptors(4);
connector.setMaxBuffers(2048);
connector.setMaxIdleTime(10000);
server.addConnector(connector);
// 添加Handler
ContextHandlerCollection context = new ContextHandlerCollection();
ContextHandler contextHandler = context.addContext("/", "/");
contextHandler.setHandler(new DispatchHandler());
Handler defaults = new DefaultHandler();
HandlerCollection collection = new HandlerCollection();
collection.setHandlers(new Handler[] { context, defaults });
server.setHandler(collection);
// 启动服务
server.start();
while (server.isStarted()) {
System.out.println("server starting...");
break;
}
System.out.println("server stared...");
System.out.println("ContextHandlerCollectio.getServer() = "
+ context.getServer().hashCode());
System.out.println("Server:" + server.hashCode());
server.join();
}
}
分发器:DispatchHandler
package com.gbcom.frame.jetty.demo;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
/**
* 编写分发处理类DispatchHandler
*
* @author SYZ
* @date 2016-2-23 上午09:54:34
* @version 1.0.0
* @see com.gbcom.frame.jetty.demo.DispatchHandler
*/
public class DispatchHandler extends AbstractHandler {
public void handle(String target, Request baseRequest,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
/**
* 这里将是根据不同的请求来分发给不同的Handler来处理
*/
if (target.equals("/index")) {
new IndexHandler().handle(target, baseRequest, request, response);
} else {
new HelloHandler().handle(target, baseRequest, request, response);
}
}
}
业务处理
package com.gbcom.frame.jetty.demo;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Calendar;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
/**
* 编写相应的Handler(IndexHandler和HelloHandler)
*
* @author SYZ
* @date 2016-2-23 上午09:54:45
* @version 1.0.0
* @see com.gbcom.frame.jetty.demo.IndexHandler
*/
public class IndexHandler extends AbstractHandler {
@Override
public void handle(String target, Request baseRequest,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.write("<h3>Hello World Jetty!</h3>");
out.write(Calendar.getInstance().getTime().toString());
out.flush();
out.close();
System.out.println("process http success!!!!");
}
}
package com.gbcom.frame.jetty.demo;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.AbstractHandler;
/**
* 编写相应的Handler(IndexHandler和HelloHandler)
* @author SYZ
* @date 2016-2-23 上午09:54:55
* @version 1.0.0
* @see com.gbcom.frame.jetty.demo.HelloHandler
*/
public class HelloHandler extends AbstractHandler {
public void handle(String target, Request baseRequest,
HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.write("<h3>This is a HelloHandler and contextPath is '/hello'.</h3>");
out.flush();
out.close();
}
}
分享到:
相关推荐
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-...
嵌入式码头上的WebSockets 该项目包含有关将WebSockets与Embedded Jetty一起使用的示例。 注意:如果要在Jetty中使用CDI + ... 演示如何使用org.eclipse.jetty.websocket API创建WebSocket客户端或WebSocket服务器。
在javaweb项目中嵌入式使用jetty作为web服务器,下载即可运行
嵌入式jetty服务器开发的所有用到的jar包 包括基础jetty使用的和编译使用的ant的jar全都全了 一次性导入再也不用为找jetty依赖jar包而麻烦了
使用Java SE的Websocket的示例与其使用Java EE及其附带的所有功能,不如使用Java EE,而不是WebSocket的一种较小的实现方式,可能是针对独立程序或嵌入式应用程序的。 该示例将显示使码头服务器运行,为websocket...
NULL 博文链接:https://qindongliang.iteye.com/blog/2090085
jetty-hightide-7.0.0.v20091005.rar ,服务器,嵌入式
Jetty 可以作为嵌入式服务器使用,Jetty的运行速度较快,而且是轻量级的,可以在Java中可以从test case中控制其运行。从而可以使自动化测试不再依赖外部环境,顺利实现自动化测试。 作为嵌入式服务器使用代码实例:...
java jetty嵌入式服务器实例大全,包括文件资源、servlet、xml配置服务器、war包、多端口监听等实例。
Jetty 是一个开源的servlet容器,... Jetty 可以作为嵌入式服务器使用,Jetty的运行速度较快,而且是轻量级的,可以在Java中可以从test case中控制其运行。从而可以使自动化测试不再依赖外部环境,顺利实现自动化测试。
jetty嵌入式服务器开发所必须的全部jar包。本人使用jetty版本为9.0.4,这个版本比较稳定些。jar包数据很多,最后集中在jetty-all中,再外引入一下servlet-api-这个包,是与9.0.4配套的。 好东西,大家分享。
用于 Web 应用程序的种子项目,其其余后端构建在 Jersey 上,与运行在嵌入式 Jetty 服务器和 AngularJS 前端的 Guice 集成。 特征 Jersey 资源在 Guice 上下文中工作,在嵌入式 Jetty 上运行。 客户端-服务器登录...
jetty是什么 jetty配置 jetty使用 jetty嵌入 jetty启动 jetty部署 jetty教程 jetty嵌入式 jetty
jetty是一个轻量级,高效,可嵌入的服务器,类似tomcat,但功能和效率上要优于tomcat
Jetty 是一个开源的servlet容器... Jetty 可以作为嵌入式服务器使用,Jetty的运行速度较快,而且是轻量级的,可以在Java中可以从test case中控制其运行。从而可以使自动化测试不再依赖外部环境,顺利实现自动化测试。
使用嵌入式servlet容器Jetty开发web应用的例程
jetty嵌入式web容器jar包 示例: public static void main(String[] args) { // 服务器的监听端口 Server server = new Server(6666); // 关联一个已经存在的上下文 WebAppContext context = new WebAppContext...
考虑使用以更简单的方式构建带有嵌入式 Web 服务器的 Spring MVC 应用程序。 概括 这是一个独立的基于 Spring 的 Java 应用程序,它嵌入了 Jetty 并使用 SpringMVC 作为其 Web 层。 它是一个模板,用于演示将 Jetty...
NULL 博文链接:https://seraph115.iteye.com/blog/436300
一个示例应用程序演示了Dropwizard如何无缝集成和实例化-Jetty服务器,RESTful Web服务的jersey框架,JSON的Jackson以及指标库。 介绍Dropwizard兼有-框架和库。 它由以下模块组成。 Jetty HTTP库和嵌入式HTTP...