在嵌入式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(); } }
相关推荐
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它允许开发者将Web服务器直接嵌入到他们的应用中,从而提供了极大的灵活性和控制权。Jetty被广泛应用于各种项目,从小型微服务到大型分布式系统,都有其...
嵌入式Jetty服务器开发是Java应用程序中常用的一种轻量级Web服务器实现,它允许开发者在无需外部服务器的情况下,直接将Web服务功能嵌入到应用中。本压缩包提供了进行嵌入式Jetty开发所需的所有关键依赖jar包,极大...
Jetty 6是一款轻量级、高性能的Java Web服务器和Servlet容器,因其可嵌入式使用而备受开发者青睐。在Eclipse这样的集成开发环境中,你可以直接通过Starter类快速启动和运行Jetty服务,大大简化了Web应用的部署流程。...
Java中的Jetty是一个轻量级、高性能且可嵌入式的Web服务器和Servlet容器,它以其简单易用和高效性在开发社区中广受欢迎。本文将深入探讨Jetty的基本概念、特性以及如何在Java项目中使用它。 1. **Jetty简介** - ...
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-...
包括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容器,它主要负责处理基于Java Servlet规范的应用程序。作为Java服务的一部分,Jetty9为开发者提供了高效、稳定且灵活的平台来部署和运行Web应用程序。 首先,Jetty 9...
这使得Jetty成为一个理想的嵌入式Web服务器选择,可以在各种复杂的应用环境中扮演关键角色。 部署Jetty应用程序非常直观。通常,将WAR包放置在Jetty的Webapps目录下,然后通过运行`java -jar start.jar`启动服务器...
在嵌入式Jetty环境下运行Struts2 Annotation项目是一个常见的任务,特别是在开发和测试阶段,因为这种方式能够快速启动服务,而无需依赖大型服务器容器。本文将深入探讨如何配置和执行这个过程,以及涉及的关键技术...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,因其开源、小巧且易于集成的特点,被广泛应用于各种项目中。本实例大全将全面解析Jetty在不同场景下的使用,帮助你深入理解和掌握Jetty的特性。 1. **...
作为一款嵌入式服务器,Jetty可以直接在应用程序中运行,无需单独的Web服务器进程,这使得它在分布式系统、微服务架构以及需要高度定制化的场景下尤为受欢迎。 在使用Jetty作为嵌入式HTTP服务器时,我们首先需要...
嵌入式Jetty允许开发者直接在应用程序中启动和管理Web服务器,无需单独部署或运行独立的服务器进程。在Java开发中,Jetty以其简单易用和灵活性著称,使得开发者能够快速地搭建和配置HTTP服务器,处理HTTP请求,支持...
在Jetty 8中,Servlet容器是其核心功能之一,它负责管理和调度Servlet实例。Servlet是一种Java API,用于生成动态Web内容。在Jetty中,Servlet容器负责解析HTTP请求,将请求路由到对应的Servlet,并将Servlet的响应...
2. **Jetty嵌入式使用** - 嵌入Jetty意味着将Jetty服务器作为应用程序的一部分来运行,无需独立的服务器进程。 - 使用`org.eclipse.jetty.server.Server`类创建服务器实例,并配置监听端口、处理请求的Handler等。...
嵌入式Servlet容器是SpringBoot中的重要组件,能够将Web服务器(例如Tomcat、Jetty或Undertow)嵌入到应用程序的内部运行,使得部署更为简单便捷。接下来我们将根据给定的文件内容,深入探讨SpringBoot配置嵌入式...
Java如何使用Jetty实现嵌入式的Servlet容器 在Java中,实现嵌入式的Servlet容器可以使用Jetty,Jetty是一个Java实现的开源的servlet容器,可以作为一个完整的Web服务器和Servlet容器,同时也可以嵌入在Java应用程序...
这个“jetty嵌入式服务.rar”文件很可能包含了关于如何在Java应用中集成和使用Jetty的相关资料。 在Java世界里,嵌入式服务器如Jetty提供了一种方便的方式来部署和运行Web应用程序,特别是对于那些希望快速启动、低...
这些库文件是运行Jetty和处理Servlet请求所必需的。如果还需要支持JSP,还需要包含相应的JSP库,如jsp-api-2.1-glassfish-9.1.1.B51.25.p1.jar。 【创建Web目录结构】 在工程中创建一个名为“web”的目录,代表Web...
在Java Web开发中,Jetty是一个轻量级、高性能的HTTP服务器和Servlet容器,它支持多种部署方式,包括作为嵌入式服务器使用。Gradle,作为现代的构建工具,提供了丰富的插件生态系统,其中包括Jetty插件,使得在开发...
jetty嵌入式服务器开发所必须的全部jar包。本人使用jetty版本为9.0.4,这个版本比较稳定些。jar包数据很多,最后集中在jetty-all中,再外引入一下servlet-api-这个包,是与9.0.4配套的。 好东西,大家分享。