`
mqchange
  • 浏览: 32783 次
  • 来自: 北京
社区版块
存档分类
最新评论

使用Jetty嵌入应用程序

阅读更多

 

迁移自个人百度空间博客!!!

 

 

 

 

Jetty有个口号叫做:"

Don't deploy your application in Jetty, deploy Jetty in your application."

 

本文演示如何使用嵌入式Jetty把HTTP Module嵌入应用程序。

 

Jetty不同的版本,包的结构不同,本文使用Jetty的7.0.2版本,目前Jetty的版本是8.0.4.    

 

1、首先要获取Jetty的Jar包。可以到http://search.maven.org/地址获取,在文本框中输入"jetty-all-"关键字,选择ArtifactId为"jetty-all"的一个"all(xx)"链接。找到版本"7.0.2.v20100331"的Jar包进行下载。

 

2、然后接着使用类似的方式查找servlet-api-2.5.jar包。可以在文本框中输入:

" g:"javax.servlet" ANDa:"servlet-api""。找到进行下载。

 

如果使用Maven配置,则复制配置信息即可。(此文不讲述Maven方式的配置)

 

3、在C盘下建立jetty文件夹,把下载的两个Jar包放进去。同时创建HelloServlet.java文件,该文件源代码如下:

 

import java.io.IOException;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

@SuppressWarnings("serial")

public class HelloServlet extends HttpServlet {

    String greeting = "Hello World";

 

    publicHelloServlet(){

    }

 

    public HelloServlet(String hi) {

       greeting = hi;

    }

 

    @Override

    protected void doGet(HttpServletRequest request,

           HttpServletResponse response) throws ServletException, IOException{

       response.setContentType("text/html;charset=utf-8"); // 加上此行代码,避免出现中文乱码

       response.setStatus(HttpServletResponse.SC_OK);

 

       response.getWriter().println("<center>");

       response.getWriter().println("<h1>" + greeting + "</h1>");

       response.getWriter().println("<h1>你可以尝试在浏览器中尝试输入如下地址:</h1>");

       response.getWriter()

              .println(

                     "<ahref='http://localhost:8080/servlet'>http://localhost:8080/servlet</a><br><br>");

       response.getWriter()

              .println(

                     "<ahref='http://localhost:8080/servlet/it'>http://localhost:8080/servlet/it</a><br><br>");

       response.getWriter()

              .println(

                     "<ahref='http://localhost:8080/servlet/fr'>http://localhost:8080/servlet/fr</a><br><br>");

       response.getWriter().println(

              "sessionId=" + request.getSession(true).getId());

       response.getWriter().println("</center>");

 

    }

}

 

 

创建OneServletContext.java文件,源代码如下:

 

 

import org.eclipse.jetty.server.Handler;

import org.eclipse.jetty.server.Server;

import org.eclipse.jetty.servlet.ServletHolder;

import org.eclipse.jetty.servlet.ServletContextHandler;

import org.eclipse.jetty.server.handler.ContextHandler;

import org.eclipse.jetty.server.handler.ResourceHandler;

importorg.eclipse.jetty.server.handler.ContextHandlerCollection;

 

public classOneServletContext{

 

    public static void main(String[] args) throws Exception {

 

       Server server = new Server(8080);

 

       // 创建ServletContextHandler,设置Servlet

       ServletContextHandler servlet = new ServletContextHandler(

              ServletContextHandler.SESSIONS);

       servlet.setContextPath("/servlet");

       servlet.addServlet(new ServletHolder(new HelloServlet()), "/*");

       servlet.addServlet(new ServletHolder(new HelloServlet(

              "this pathis /servlet/it")), "/it/*");

       servlet.addServlet(new ServletHolder(new HelloServlet(

              "this pathis /servlet/fr")), "/fr/*");

 

       // 创建ContextHandler,设置静态资源

       ContextHandler context = new ContextHandler();

       context.setContextPath("/");

    context.setResourceBase(".");//设置路径

        context.setClassLoader(Thread.currentThread().getContextClassLoader());

       context.setHandler(new ResourceHandler());

 

       // 创建ContextHandlerCollection 集合

       ContextHandlerCollection contexts = newContextHandlerCollection();

       contexts.setHandlers(new Handler[] { servlet, context });

 

       // 设置Handler

       server.setHandler(contexts);

 

       server.start();

       server.join();

 

    }

}

 

 

 

创建index.html文件,内容为Hello World。

 

复制以下命令,同时在当前目录创建一个后缀为.bat的批处理文件。

 

@echo off

 

javac -cp.;servlet-api-2.5.jar;jetty-all-7.0.2.v20100331.jar *.java

 

 

java -cp.;servlet-api-2.5.jar;jetty-all-7.0.2.v20100331.jar OneServletContext

 

 

4、  双击批处理运行,看到如下图所示说明Jetty成功启动。

 


 

在地址栏中输入http://localhost:8080,可看到如下效果。

 


 

 

 

静态资源的注册

 

在地址栏中输入   http://localhost:8080/servlet/  ,可看到如下效果:

 

 

 


 

Servlet的注册

 

 

   有关其他关于Jetty的资源,请到   http://wiki.eclipse.org/Jetty    查看。

 

转载请注明文章出处!!!!!!

 

 

 

  • 大小: 25.4 KB
  • 大小: 21.1 KB
  • 大小: 63.1 KB
分享到:
评论

相关推荐

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

    Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它允许开发者将Web服务器功能直接嵌入到Java应用程序中,无需外部服务器。本案例主要探讨Jetty在嵌入式Web编程中的多种实现方法,旨在帮助开发者更好地...

    jetty嵌入项目实战

    通过这个实战项目,学习者可以了解到Jetty的核心概念,掌握如何将Jetty嵌入到自己的Java应用中,以及如何构建、运行和调试Web应用。对于想要快速搭建Web服务的开发者来说,这是一次非常有价值的实践。

    jetty4spring:该库有助于将Jetty嵌入到Spring应用程序中

    码头4Spring该库可帮助您将Jetty嵌入到Spring应用程序中。动机将Web容器(Jetty)嵌入到应用程序中是一种创建独立且轻量级应用程序的新方法。 当我决定将Jetty嵌入到一个应用程序中(在令人惊叹的Spring Boot之前)...

    jetty6.1.4 嵌入样例

    传统的Web服务器是独立运行的进程,而嵌入式Web服务器如Jetty则可以被直接集成到应用程序中,无需启动单独的服务。这种方式使得开发、测试和部署变得更加灵活和高效。 在Jetty 6.1.4中,你可以通过简单的Java代码将...

    Jetty内嵌服务器实例

    Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它被广泛用于开发、测试和部署Web应用程序。内嵌Jetty意味着将Jetty服务器直接集成到你的Java应用中,而不是作为一个独立的服务来运行。这种方式提供了更...

    jetty 8 嵌入web 及Jsoup测试

    Jetty 8是一款轻量级、高性能的Java Web服务器和Servlet容器,它允许开发者将Web服务器直接嵌入到他们的应用程序中,从而简化了部署和测试流程。Jsoup则是一个用于处理现实世界HTML的Java库,它提供了非常方便的API...

    应用服务器jetty8.0

    Jetty 8.0是Java应用服务器的一种,主要用于托管Web应用程序。它是一个开源项目,以其轻量级、高效和易于集成的特点在开发社区中受到欢迎。Jetty支持Servlet 3.0规范,提供了对WebSocket协议的早期支持,这在当时是...

    jetty-5.1.12

     Jetty 设计之初就是作为一个优秀的组件来设计的,这也就意味着 Jetty 可以非常容易的嵌入到应用程序当中而不需要程序为了使用 Jetty 做修改。从某种程度上,你也可以把 Jetty 理解为一个嵌入式的Web服务器。 Jetty...

    java应用程序实现jetty 集成jersey 和spring

    在Java应用程序中,Jetty可以直接嵌入,无需独立服务器进程,这样可以简化部署流程。 集成Jetty的步骤主要包括: 1. 添加Jetty依赖:在项目中引入Jetty的JAR文件或通过Maven/Gradle等构建工具添加依赖。 2. 初始化...

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

    此外,Jetty的轻量化使得将其嵌入到Java应用程序中变得异常简单,只需少量代码即可实现。 在可扩展性方面,Jetty针对高并发和长时间连接的Web 2.0应用进行了优化。它利用Continuation机制有效地处理大量用户请求和...

    jetty8+ 内嵌式启动运行demo

    Jetty 8 是一个轻量级、高性能的Java Web服务器和Servlet容器,它允许开发者将Web服务器和应用服务器集成到他们的应用程序中。本教程将深入探讨如何使用Jetty 8进行内嵌式启动运行,这对于开发和测试环境非常有用,...

    面向 Java 开发人员的 Ajax: 使用 Jetty 和 Direct Web Remoting 编写可扩展的 Comet 应用程序

    面向Java开发人员的Ajax技术,特别是与Jetty服务器和Direct Web Remoting (DWR)框架的结合,为创建高性能、可扩展的Comet应用程序提供了强大的工具。Comet是一种Web交互模式,它允许服务器向客户端推送数据,而不...

    嵌入jetty的springMVC可运行jar的REST+

    标题中的“嵌入jetty的springMVC可运行jar的REST+”指的是使用Jetty作为嵌入式服务器来运行一个包含Spring MVC的Java Web应用程序,该应用提供了RESTful API服务。这种架构允许开发者将Web服务器与应用代码打包成...

    Jetty入门学习资料

    3. **嵌入简单**:将Jetty嵌入到Java应用程序中只需少量代码,降低了集成的复杂度。 **可扩展性** 面对Web 2.0应用中大量并发请求和长时间连接的问题,Jetty表现出优秀的可扩展性: 1. **高性能**:即使在高负载...

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

    嵌入式Jetty允许我们将Jetty直接集成到应用程序中,无需单独部署或管理服务器进程。 2. **Struts2**:这是一个流行的MVC(Model-View-Controller)框架,用于构建Java Web应用程序。Struts2引入了Action类和注解,...

    jetty-springmvc-thymeleaf-template:使用嵌入 Jetty 并使用 Thymeleaf 作为视图技术的模板 Spring 应用程序

    这是一个独立的基于 Spring 的 Java 应用程序,它嵌入了 Jetty 并使用 SpringMVC 作为其 Web 层。 它是一个模板,用于演示将 Jetty 和 SpringMVC 作为 Web 层嵌入到您的应用程序中,而不是将您的应用程序部署到容器...

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

    - **可嵌入式**:开发者可以直接将Jetty嵌入到应用程序中,无需外部进程,简化了部署和管理。 - **高性能**:Jetty采用了NIO(非阻塞I/O)模型,提高了并发处理能力。 - **WebSocket支持**:Jetty是最早支持...

    jetty6 嵌入到 javaproject中

    Jetty 6是一款轻量级、高性能的Java Web服务器和HTTP服务器,它可以在Java应用程序中嵌入使用,无需单独部署。这篇博客文章可能是关于如何将Jetty 6集成到Java项目中的教程。以下是对这个主题的详细解释: 一、...

    Jetty使用总结

    启动Jetty可以通过命令行方式执行Jetty安装目录下的启动脚本(如`start.jar`),或者通过编程的方式在Java应用程序中嵌入Jetty服务器。具体方法可以根据实际情况选择。 #### 五、总结 通过上述步骤,我们可以轻松...

    利用Jetty服务器开发web应用例程

    由于其轻量级特性,Jetty无需复杂的部署步骤,可以方便地与Java应用程序集成,尤其适合嵌入式场景。 在使用Jetty开发Web应用之前,确保已安装了Java Development Kit (JDK)。然后,你可以通过Maven或Gradle将Jetty...

Global site tag (gtag.js) - Google Analytics