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

Jetty实战(2)之嵌入式运行Jetty多Connector

阅读更多

在嵌入运行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/。

分享到:
评论

相关推荐

    jetty 嵌入式开发源码

    2. **嵌入式使用** 在嵌入式开发中,你可以直接在你的Java代码中创建Jetty Server实例,配置Connectors和Handlers,然后启动服务器,无需部署WAR文件。这使得开发、测试和调试过程更加便捷。 3. **源码分析** - `...

    jetty嵌入式服务器实例大全

    对于需要在多个端口上提供服务的情况,Jetty提供了`ServerConnector`接口。你可以创建多个`ServerConnector`实例,分别绑定到不同的端口,实现同一服务器同时监听多个端口的功能。 6. **连接器与协议**: Jetty...

    jetty嵌入式Httpserver

    作为一款嵌入式服务器,Jetty可以直接在应用程序中运行,无需单独的Web服务器进程,这使得它在分布式系统、微服务架构以及需要高度定制化的场景下尤为受欢迎。 在使用Jetty作为嵌入式HTTP服务器时,我们首先需要...

    HelloWorld之jetty运行

    由于其嵌入式特性和高效性能,Jetty常被用于开发快速原型、微服务和云应用。在Java社区中,Jetty因其小巧、易于集成和高度可定制的特点而受到广泛欢迎。 【搭建Jetty环境】 要搭建一个简单的Jetty环境,首先需要...

    jetty嵌入式服务.rar

    这个“jetty嵌入式服务.rar”文件很可能包含了关于如何在Java应用中集成和使用Jetty的相关资料。 在Java世界里,嵌入式服务器如Jetty提供了一种方便的方式来部署和运行Web应用程序,特别是对于那些希望快速启动、低...

    jetty6 指南书

    虽然两者都是Servlet容器,但Jetty通常被认为更轻量、更快,适合嵌入式场景,而Tomcat在企业级应用中更为常见,有更广泛的应用和更多的第三方插件支持。 5. **配置和使用**: - **下载和安装**:可以从官方网站...

    Jetty 学习资料汇总

    4. **嵌入式Jetty**:阐述如何将Jetty直接嵌入到应用程序中,实现更灵活的部署方式。 5. **故障排查与日志**:介绍如何配置和使用Jetty的日志系统,以及常见问题的解决方法。 通过上述内容的学习,你将能够熟练地...

    Jetty权威指南.pdf

    Handler是Jetty中的核心组件之一,它负责处理来自Connector的请求,并生成响应返回给客户端。Handler可以通过组合的方式来实现复杂的功能,例如静态文件服务、动态内容生成等。 **3.4 Server和ThreadPool** - **...

    jetty 6 指南书

    - **动态热部署**:如何在运行时更新应用而无需重启Jetty。 - **Servlet2.5新特性**:讨论Jetty对Servlet 2.5规范的支持。 6. **Handler详解**:涵盖不同类型的Handler,如Request Handler、Session Handler等,...

    Java_嵌入式Jetty WebSocket示例.zip

    在"Java_嵌入式Jetty WebSocket示例.zip"这个压缩包中,我们有两个主要的文件:说明.txt和embedded-jetty-websocket-examples_repo-moved.zip。`说明.txt`文件通常会包含有关示例的详细指导,如如何运行和理解代码。...

    jetty嵌入Web编程多种实现方式案例

    只需在pom.xml中添加相关配置,然后运行`mvn jetty:run`命令,即可启动一个包含当前项目的Jetty服务器。 三、Jetty的WebSocket支持 Jetty不仅支持传统的HTTP,还提供了对WebSocket的强大支持。通过WebSocket...

    jetty+maven webapp,http,https实现的简单demo

    `embedded`可能指的是将Jetty作为一个嵌入式服务器在你的应用中启动,而不是作为独立进程。`ManyConnectors`可能表示在同一个服务器实例上配置多个连接器,以便同时提供HTTP和HTTPS服务。 **7. 运行与测试** 通过...

    jetty指导书

    `jetty.xml`是Jetty的核心配置文件之一,它定义了Server的基本配置,包括Connectors、Handlers等组件的设置。 **4.2 Jetty xmlConfiguration语法** Jetty支持XML格式的配置文件,通过特定的XML元素和属性来描述...

    jetty指南书

    Jetty 指南书是一本专注于Jetty web容器的详细教程,主要涵盖了Jetty的基础知识、安装配置、架构解析、服务配置、Web应用程序部署、Handler详解、类加载器、Connector配置、虚拟主机、服务器管理和性能优化等多个...

    jetty6.1.4 嵌入样例

    以下是一个基本的嵌入式Jetty服务器启动示例: ```java import org.mortbay.jetty.Server; import org.mortbay.jetty.nio.SelectChannelConnector; import org.mortbay.jetty.webapp.WebAppContext; public class ...

    jetty-9.4.2

    Jetty 9.4.x系列是Jetty项目的一个稳定分支,提供了对Servlet 3.1规范的支持,这意味着它可以运行基于Java Servlet API开发的现代Web应用。此版本特别强调了在Java开发环境中以“main”方式启动Jetty服务器的能力,...

    jetty 8 嵌入web 及Jsoup测试

    在这篇内容中,我们将深入探讨Jetty 8的嵌入式使用方法以及如何结合Jsoup进行Web测试。 1. **Jetty 8嵌入式Web服务器** - **嵌入式概念**:与传统的独立运行的Web服务器不同,嵌入式Web服务器是直接在应用程序代码...

    i_jetty安卓端源码

    1. **初始化流程**: i_jetty的启动过程涉及服务器实例化、配置设置、连接器添加以及处理器注册等多个步骤,这些都在源码的初始化函数中体现。 2. **请求处理链路**: 从Connector接收请求到Handler处理,再到Servlet...

    《Jetty6_指南书》

    - **应用场景**: 嵌入式Jetty的应用场景和技术优势。 #### 十六、JEE服务器整合 - **整合Spring**: 如何将Jetty与Spring框架整合。 - **其他JEE技术**: 如何与其他JEE技术栈集成。 #### 十七、在开发环境中使用...

    jetty6 嵌入到 javaproject中

    二、为什么选择嵌入式Jetty 1. 简化部署:通过嵌入Jetty,开发者可以直接在Java应用程序中运行Web服务,无需额外配置独立的服务器实例。 2. 快速启动:Jetty设计为快速启动和响应,这对于开发和测试环境尤其有用。 3...

Global site tag (gtag.js) - Google Analytics