`

Jetty实战之 嵌入式Jetty运行Servlet

阅读更多

转载链接:http://blog.csdn.net/kongxx/article/details/7230080

在嵌入式Jetty中,有时候我们想运行一些的Servlet,此时就需要创建创建Context,然后让自己的Servlet运行在这些ServletContext中。

1. 首先创建一个ServletContextServer类,用来初始化web应用程序的Context,并且指定Servlet和Servlet匹配的 url。这里指定了两个Servlet,分别是HelloServlet和GoodbyeServlet,并分别对应/hello/*和/goodbye /*。

    package com.google.code.garbagecan.jettystudy.sample5;  
      
    import org.eclipse.jetty.server.Server;  
    import org.eclipse.jetty.servlet.ServletContextHandler;  
    import org.eclipse.jetty.servlet.ServletHolder;  
      
    public class ServletContextServer {  
        public static void main(String[] args) throws Exception {  
            Server server = new Server(8080);  
      
            ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);  
            context.setContextPath("/");  
            server.setHandler(context);  
      
            // http://localhost:8080/hello  
            context.addServlet(new ServletHolder(new HelloServlet()), "/hello");  
            // http://localhost:8080/hello/kongxx  
            context.addServlet(new ServletHolder(new HelloServlet("Hello Kongxx!")), "/hello/kongxx");  
      
            // http://localhost:8080/goodbye  
            context.addServlet(new ServletHolder(new GoodbyeServlet()), "/goodbye");  
            // http://localhost:8080/goodbye/kongxx  
            context.addServlet(new ServletHolder(new GoodbyeServlet("Goodbye kongxx!")), "/goodbye/kongxx");  
              
            server.start();  
            server.join();  
        }  
    }  

 2. 两个简单的Servlet:HelloServlet和GoodbyeServlet:

    package com.google.code.garbagecan.jettystudy.sample5;  
      
    import java.io.IOException;  
    import javax.servlet.ServletException;  
    import javax.servlet.http.HttpServlet;  
    import javax.servlet.http.HttpServletRequest;  
    import javax.servlet.http.HttpServletResponse;  
      
    public class HelloServlet extends HttpServlet {  
        private static final long serialVersionUID = 1L;  
        private String msg = "Hello World!";  
      
        public HelloServlet() {  
        }  
      
        public HelloServlet(String msg) {  
            this.msg = msg;  
        }  
      
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
            response.setContentType("text/html");  
            response.setStatus(HttpServletResponse.SC_OK);  
            response.getWriter().println("<h1>" + msg + "</h1>");  
            response.getWriter().println("session=" + request.getSession(true).getId());  
        }  
    }  
      
    package com.google.code.garbagecan.jettystudy.sample5;  
      
    import java.io.IOException;  
    import javax.servlet.ServletException;  
    import javax.servlet.http.HttpServlet;  
    import javax.servlet.http.HttpServletRequest;  
    import javax.servlet.http.HttpServletResponse;  
      
    public class GoodbyeServlet extends HttpServlet {  
        private static final long serialVersionUID = 1L;  
        private String msg = "Goodbye!";  
      
        public GoodbyeServlet() {  
        }  
      
        public GoodbyeServlet(String msg) {  
            this.msg = msg;  
        }  
      
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {  
            response.setContentType("text/html");  
            response.setStatus(HttpServletResponse.SC_OK);  
            response.getWriter().println("<h1>" + msg + "</h1>");  
            response.getWriter().println("session=" + request.getSession(true).getId());  
        }  
    }  

 3. 运行ServletContextServer类,然后分别访问以下四个url

  http://localhost:8080/hello
  http://localhost:8080/hello/kongxx
  http://localhost:8080/goodbye
  http://localhost:8080/goodbye/kongxx

 

4. 除了上面的方式外,也可以创建两个个Context,分别绑定到"/hello"和"/goodbye",如下:

    package com.google.code.garbagecan.jettystudy.sample5;  
      
    import org.eclipse.jetty.server.Handler;  
    import org.eclipse.jetty.server.Server;  
    import org.eclipse.jetty.server.handler.ContextHandlerCollection;  
    import org.eclipse.jetty.servlet.ServletContextHandler;  
    import org.eclipse.jetty.servlet.ServletHolder;  
      
    public class MultiContextServer {  
        public static void main(String[] args) throws Exception {  
            Server server = new Server(8080);  
      
            // http://localhost:8080/hello/kongxx  
            ServletContextHandler context1 = new ServletContextHandler(ServletContextHandler.SESSIONS);  
            context1.setContextPath("/hello");  
            context1.setResourceBase(".");  
            context1.setClassLoader(Thread.currentThread().getContextClassLoader());  
            context1.addServlet(new ServletHolder(new HelloServlet("Hello Kongxx!")), "/kongxx");  
      
            // http://localhost:8080/goodbye/kongxx  
            ServletContextHandler context2 = new ServletContextHandler(ServletContextHandler.SESSIONS);  
            context2.setContextPath("/goodbye");  
            context2.setResourceBase(".");  
            context2.setClassLoader(Thread.currentThread().getContextClassLoader());  
            context2.addServlet(new ServletHolder(new GoodbyeServlet("Goodbye kongxx!")), "/kongxx");  
      
            ContextHandlerCollection contexts = new ContextHandlerCollection();  
            contexts.setHandlers(new Handler[] { context1, context2 });  
      
            server.setHandler(contexts);  
      
            server.start();  
            server.join();  
        }  
    }  
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    jetty6 嵌入式使用

    Jetty 6是一款轻量级、高性能的Java Web服务器和Servlet容器,因其可嵌入式使用而备受开发者青睐。在Eclipse这样的集成开发环境中,你可以直接通过Starter类快速启动和运行Jetty服务,大大简化了Web应用的部署流程。...

    jetty 嵌入式开发源码

    Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它允许开发者将Web服务器直接嵌入到他们的应用中,从而提供了极大的灵活性和控制权。Jetty被广泛应用于各种项目,从小型微服务到大型分布式系统,都有其...

    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运行所需jar包

    包括org.eclipse.jetty.servlet_7.1.6.v20100715.jar、org.eclipse.jetty.server.jar、org.eclipse.jetty.servlet.source_7.1.6.v20100715.jar三个jar包,在进行jetty嵌入式编程时需要用到。

    Jetty 9 Servlet容器

    Jetty 9是一款轻量级、高性能且开源的Servlet容器,它主要负责处理基于Java Servlet规范的应用程序。作为Java服务的一部分,Jetty9为开发者提供了高效、稳定且灵活的平台来部署和运行Web应用程序。 首先,Jetty 9...

    嵌入式jetty服务器开发所有的依赖jar包

    嵌入式Jetty服务器开发是Java应用程序中常用的一种轻量级Web服务器实现,它允许开发者在无需外部服务器的情况下,直接将Web服务功能嵌入到应用中。本压缩包提供了进行嵌入式Jetty开发所需的所有关键依赖jar包,极大...

    实战 Jetty--让你快速速学会jetty

    这使得Jetty成为一个理想的嵌入式Web服务器选择,可以在各种复杂的应用环境中扮演关键角色。 部署Jetty应用程序非常直观。通常,将WAR包放置在Jetty的Webapps目录下,然后通过运行`java -jar start.jar`启动服务器...

    Java如何使用Jetty实现嵌入式的Servlet容器

    Java如何使用Jetty实现嵌入式的Servlet容器 在Java中,实现嵌入式的Servlet容器可以使用Jetty,Jetty是一个Java实现的开源的servlet容器,可以作为一个完整的Web服务器和Servlet容器,同时也可以嵌入在Java应用程序...

    jetty嵌入式服务器实例大全

    Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,因其开源、小巧且易于集成的特点,被广泛应用于各种项目中。本实例大全将全面解析Jetty在不同场景下的使用,帮助你深入理解和掌握Jetty的特性。 1. **...

    在嵌入式jetty环境下运行struts2Annotation项目

    在嵌入式Jetty环境下运行Struts2 Annotation项目是一个常见的任务,特别是在开发和测试阶段,因为这种方式能够快速启动服务,而无需依赖大型服务器容器。本文将深入探讨如何配置和执行这个过程,以及涉及的关键技术...

    JAVA里使用Jetty作为轻量级嵌入式的Web容器

    Java中的Jetty是一个轻量级、高性能且可嵌入式的Web服务器和Servlet容器,它以其简单易用和高效性在开发社区中广受欢迎。本文将深入探讨Jetty的基本概念、特性以及如何在Java项目中使用它。 1. **Jetty简介** - ...

    jetty嵌入式Httpserver

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

    jetty嵌入式实例

    嵌入式Jetty允许开发者直接在应用程序中启动和管理Web服务器,无需单独部署或运行独立的服务器进程。在Java开发中,Jetty以其简单易用和灵活性著称,使得开发者能够快速地搭建和配置HTTP服务器,处理HTTP请求,支持...

    jetty9.0.4嵌入式服务器开发所必须的全部jar包

    jetty嵌入式服务器开发所必须的全部jar包。本人使用jetty版本为9.0.4,这个版本比较稳定些。jar包数据很多,最后集中在jetty-all中,再外引入一下servlet-api-这个包,是与9.0.4配套的。 好东西,大家分享。

    SpringBoot之配置嵌入式Servlet容器.pdf

    嵌入式Servlet容器是SpringBoot中的重要组件,能够将Web服务器(例如Tomcat、Jetty或Undertow)嵌入到应用程序的内部运行,使得部署更为简单便捷。接下来我们将根据给定的文件内容,深入探讨SpringBoot配置嵌入式...

    jetty嵌入项目实战

    2. **Jetty嵌入式使用** - 嵌入Jetty意味着将Jetty服务器作为应用程序的一部分来运行,无需独立的服务器进程。 - 使用`org.eclipse.jetty.server.Server`类创建服务器实例,并配置监听端口、处理请求的Handler等。...

    jetty嵌入式服务.rar

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

    jetty 8及依赖包

    在Jetty 8中,Servlet容器是其核心功能之一,它负责管理和调度Servlet实例。Servlet是一种Java API,用于生成动态Web内容。在Jetty中,Servlet容器负责解析HTTP请求,将请求路由到对应的Servlet,并将Servlet的响应...

    jetty 适合jdk1.8用的服务器

    4. **易于集成**:Jetty可以轻松地嵌入到其他Java应用中,例如作为嵌入式服务器,这在微服务和云环境中的应用非常普遍。 5. **最新的协议支持**:Jetty支持HTTP/2和WebSocket等现代网络协议,为开发者提供了更多的...

    Jetty web服务器

    Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立...

Global site tag (gtag.js) - Google Analytics