在嵌入运行Jetty的时候,有时候想要启动两个端口,或者通过一个Jetty server提供多个不同服务,比如说使用8080来指定默认访问端口,使用8433指定https访问端口等等,此时就可以通过创建多个Connector来解决。
1. 首先创建一个Server类,其中创建了两个Connector实例,一个绑定到了8080端口,另一个绑定到了9090端口:
package com.google.code.garbagecan.jettystudy.sample2; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.nio.SelectChannelConnector; public class MyServer { public static void main(String[] args) throws Exception { Server server = new Server(); SelectChannelConnector connector1 = new SelectChannelConnector(); connector1.setPort(8080); SelectChannelConnector connector2 = new SelectChannelConnector(); connector2.setPort(9090); server.setConnectors(new Connector[] { connector1, connector2 }); server.setHandler(new HelloHandler()); server.start(); server.join(); } }
2. 创建一个Handler类,用了处理所有客户端的请求
package com.google.code.garbagecan.jettystudy.sample2; 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; 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"); response.setStatus(HttpServletResponse.SC_OK); baseRequest.setHandled(true); response.getWriter().println("<h1>Hello World</h1>"); response.getWriter().println("<li>Request url: " + target + "</li>"); response.getWriter().println("<li>Server port: " + request.getServerPort() + "</li>"); } }
3. 运行MyServer类,通过浏览器分别访问http://localhost:8080/和http://localhost:9090/。
相关推荐
2. **嵌入式使用** 在嵌入式开发中,你可以直接在你的Java代码中创建Jetty Server实例,配置Connectors和Handlers,然后启动服务器,无需部署WAR文件。这使得开发、测试和调试过程更加便捷。 3. **源码分析** - `...
对于需要在多个端口上提供服务的情况,Jetty提供了`ServerConnector`接口。你可以创建多个`ServerConnector`实例,分别绑定到不同的端口,实现同一服务器同时监听多个端口的功能。 6. **连接器与协议**: Jetty...
作为一款嵌入式服务器,Jetty可以直接在应用程序中运行,无需单独的Web服务器进程,这使得它在分布式系统、微服务架构以及需要高度定制化的场景下尤为受欢迎。 在使用Jetty作为嵌入式HTTP服务器时,我们首先需要...
这个“jetty嵌入式服务.rar”文件很可能包含了关于如何在Java应用中集成和使用Jetty的相关资料。 在Java世界里,嵌入式服务器如Jetty提供了一种方便的方式来部署和运行Web应用程序,特别是对于那些希望快速启动、低...
由于其嵌入式特性和高效性能,Jetty常被用于开发快速原型、微服务和云应用。在Java社区中,Jetty因其小巧、易于集成和高度可定制的特点而受到广泛欢迎。 【搭建Jetty环境】 要搭建一个简单的Jetty环境,首先需要...
虽然两者都是Servlet容器,但Jetty通常被认为更轻量、更快,适合嵌入式场景,而Tomcat在企业级应用中更为常见,有更广泛的应用和更多的第三方插件支持。 5. **配置和使用**: - **下载和安装**:可以从官方网站...
4. **嵌入式Jetty**:阐述如何将Jetty直接嵌入到应用程序中,实现更灵活的部署方式。 5. **故障排查与日志**:介绍如何配置和使用Jetty的日志系统,以及常见问题的解决方法。 通过上述内容的学习,你将能够熟练地...
Handler是Jetty中的核心组件之一,它负责处理来自Connector的请求,并生成响应返回给客户端。Handler可以通过组合的方式来实现复杂的功能,例如静态文件服务、动态内容生成等。 **3.4 Server和ThreadPool** - **...
- **动态热部署**:如何在运行时更新应用而无需重启Jetty。 - **Servlet2.5新特性**:讨论Jetty对Servlet 2.5规范的支持。 6. **Handler详解**:涵盖不同类型的Handler,如Request Handler、Session Handler等,...
配置jetty6的嵌入式https必须的jar包 本人在网上找了好几天,历尽千辛万苦终于找到这个包,包里有org.mortbay.jetty.security.SslSelectChannelConnector类 这正是我需要的。包很小,里面就几个文件,但解决了我大...
在"Java_嵌入式Jetty WebSocket示例.zip"这个压缩包中,我们有两个主要的文件:说明.txt和embedded-jetty-websocket-examples_repo-moved.zip。`说明.txt`文件通常会包含有关示例的详细指导,如如何运行和理解代码。...
只需在pom.xml中添加相关配置,然后运行`mvn jetty:run`命令,即可启动一个包含当前项目的Jetty服务器。 三、Jetty的WebSocket支持 Jetty不仅支持传统的HTTP,还提供了对WebSocket的强大支持。通过WebSocket...
`embedded`可能指的是将Jetty作为一个嵌入式服务器在你的应用中启动,而不是作为独立进程。`ManyConnectors`可能表示在同一个服务器实例上配置多个连接器,以便同时提供HTTP和HTTPS服务。 **7. 运行与测试** 通过...
`jetty.xml`是Jetty的核心配置文件之一,它定义了Server的基本配置,包括Connectors、Handlers等组件的设置。 **4.2 Jetty xmlConfiguration语法** Jetty支持XML格式的配置文件,通过特定的XML元素和属性来描述...
Jetty 指南书是一本专注于Jetty web容器的详细教程,主要涵盖了Jetty的基础知识、安装配置、架构解析、服务配置、Web应用程序部署、Handler详解、类加载器、Connector配置、虚拟主机、服务器管理和性能优化等多个...
以下是一个基本的嵌入式Jetty服务器启动示例: ```java import org.mortbay.jetty.Server; import org.mortbay.jetty.nio.SelectChannelConnector; import org.mortbay.jetty.webapp.WebAppContext; public class ...
Jetty 9.4.x系列是Jetty项目的一个稳定分支,提供了对Servlet 3.1规范的支持,这意味着它可以运行基于Java Servlet API开发的现代Web应用。此版本特别强调了在Java开发环境中以“main”方式启动Jetty服务器的能力,...
在这篇内容中,我们将深入探讨Jetty 8的嵌入式使用方法以及如何结合Jsoup进行Web测试。 1. **Jetty 8嵌入式Web服务器** - **嵌入式概念**:与传统的独立运行的Web服务器不同,嵌入式Web服务器是直接在应用程序代码...
1. **初始化流程**: i_jetty的启动过程涉及服务器实例化、配置设置、连接器添加以及处理器注册等多个步骤,这些都在源码的初始化函数中体现。 2. **请求处理链路**: 从Connector接收请求到Handler处理,再到Servlet...
- **应用场景**: 嵌入式Jetty的应用场景和技术优势。 #### 十六、JEE服务器整合 - **整合Spring**: 如何将Jetty与Spring框架整合。 - **其他JEE技术**: 如何与其他JEE技术栈集成。 #### 十七、在开发环境中使用...