`

Jetty实战之 嵌入式运行Jetty多Connector

阅读更多

转载地址:http://blog.csdn.net/kongxx/article/details/7218787

在嵌入运行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 嵌入式开发源码

    这对于理解Jetty如何运行非常有帮助。 5. **性能优化** Jetty的源码揭示了其性能优化策略,比如使用NIO进行高并发处理,以及对线程池的精细管理。通过研究源码,开发者可以了解如何调整参数以提高性能。 6. **...

    jetty嵌入式服务器实例大全

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

    jetty嵌入式Httpserver

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

    jetty嵌入式服务.rar

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

    HelloWorld之jetty运行

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

    jetty6的https.jar org.mortbay.jetty.https.jar

    配置jetty6的嵌入式https必须的jar包 本人在网上找了好几天,历尽千辛万苦终于找到这个包,包里有org.mortbay.jetty.security.SslSelectChannelConnector类 这正是我需要的。包很小,里面就几个文件,但解决了我大...

    jetty6 指南书

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

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

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

    jetty 6 指南书

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

    Jetty 学习资料汇总

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

    Java_嵌入式Jetty WebSocket示例.zip

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

    Jetty权威指南.pdf

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

    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指南书

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

    jetty 8 嵌入web 及Jsoup测试

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

    jetty指导书

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

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

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

    jetty-9.4.2

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

    《Jetty6_指南书》

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

    jetty使用文档

    - Jetty 项目始于1995年,历经多个版本迭代,目前已有多个稳定版本,如Jetty 6、7、8、9和10。 - Jetty 社区活跃,持续更新,为Java EE标准提供支持。 4. **Jetty vs Tomcat** - Jetty 通常被认为比Tomcat更快、...

Global site tag (gtag.js) - Google Analytics