在嵌入式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嵌入式服务器开发所必须的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嵌入式编程时需要用到。
引入到eclipse可以直接使用Starter类运行。 包含必备jar包:jetty-6.1.26.jar,jetty-util-6.1.26,servlet的相关jar包。 jetty入门级源代码。
jetty是一个轻便的嵌入式servlet容器。其启动运行非常简单。这是一个简单的Jetty例子程序。
java jetty嵌入式服务器实例大全,包括文件资源、servlet、xml配置服务器、war包、多端口监听等实例。
Jetty是一个100%由Java实现的、开源的HTTP服务器和javax.servlet容器,它不仅仅作为一个独立服务软件(如Tomcat) 被使用,而且其 优良的组件(Componet)设计、高内聚低耦合、高扩展性等特性使得Jetty非常易于作为...
主要介绍了Java使用Jetty实现嵌入式的Servlet容器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,下面我们来一起了解一下吧
jetty嵌入式服务器开发所必须的全部jar包。本人使用jetty版本为9.0.4,这个版本比较稳定些。jar包数据很多,最后集中在jetty-all中,再外引入一下servlet-api-这个包,是与9.0.4配套的。 好东西,大家分享。
Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立...
Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立...
Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立...
使用嵌入式servlet容器Jetty开发web应用的例程
SpringBoot 注册自己的Servlet(三种方式)(源代码) ...目前使用Spring的,更多是在web方面,所以Spring更多的是依赖Servlet容器,哪怕是springboot擅长做独立可执行的微服务应用程序,其内部也包含一个嵌入式Jetty。
示例:带JSP支持的嵌入式Jetty 这是一个maven项目,用于构建它: $ mvn clean package 要运行示例org.eclipse.jetty.demo.Main : $ mvn exec:exec 打开您的Web浏览器以: http://localhost:8080/ 停止码头: 使用...
#Jersey-2,Guice,Embedded Jetty Maven项目演示了如何使用带有Guice注入的Jersey-2和通过MOXy进行JSON绑定,在具有基于Servlet-3.1注释的配置的Embedded Jetty-9中运行JAX-RS 2项目。 ##执行这个专案的步骤叉,...
部署wai-servlet应用程序有两种选择:生成要部署在servlet容器中的war文件或直接在嵌入式容器中运行它。 这与在Haskell wai应用程序中使用更相似。在嵌入式Servlet容器中运行应用程序您需要安装软件包并将其设置为...
这个小示例演示了如何使用您选择的嵌入式 Servlet 容器(Tomcat、Jetty 或 Undertow)设置可运行的 Spring Boot 应用程序。 此示例可用于快速简便的嵌入式容器配置(因此后缀ecc )。 嵌入式Tomcat 此示例显示...
#Jersey-2,MOXy,JPA-2,Embedded Jetty Maven项目演示如何使用Jersey-2和具有通过MOXy的JSON绑定的Jersey-2,在具有基于Servlet-3.1批注的配置的嵌入式Jetty-9中运行JAX-RS 2项目。 -2持久性。 响应以Collection ...
不要尝试以Ruby优先的嵌入式方式运行Jetty。 不要假设您的服务器环境中已经安装了JRuby(基本的JRE可以正常工作)。 不会强制您的ruby webapp从jar或war加载文件。 简而言之,Jetpack在您的ruby项目周围创建了一个...
构建代码 mvn package使用 belly-shade 插件和 Jetty 作为 servlet 容器制作一个 uberjar。创建泊坞窗图像使用作为基础。 给出约300M的图像 sudo docker build --rm=true -t simple-microservice .以为基础,镜像160...