Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Jetty 9嵌入式开发

官方网址:http://www.eclipse.org/jetty/下载地址:http://download.eclipse.org/jetty/stable-9/dist/文档网址:http://www.eclipse.org/jetty/documentation/当前Jetty网址上推荐使用的稳定版本:Jetty9.0。使用Jetty作为嵌入式服务器 http://www.linuxidc.com/Linux/2013-07/86983.htmJetty 源码分析 http://www.linuxidc.com/Linux/2013-10/90986.htmJetty安装学习并展示 http://www.linuxidc.com/Linux/2014-05/101993.htmJetty在Eclipse中的安装 http://www.linuxidc.com/Linux/2013-10/90991.htmLinux(RedHat 5.8)下 安装Jetty 部署 使用  http://www.linuxidc.com/Linux/2014-10/108342.htm

介绍

      Jetty9内容位于http://www.eclipse.org/jetty/documentation。      直接链接:http://www.eclipse.org/jetty/documentation/current/embedding-jetty.html      Jetty有一个标语,“不要部署你的应用在Jetty上,部署Jetty在你的应用中”。这意味着可选择使用Jetty捆绑你的应用作为一个标准WAR进行部署。Jetty设计成一个软件组件,可以实例化并且使用在Java程序中,例如:如何POJO。但是另外一种方法,以嵌入式模式运行Jetty,这意味着把HTTP模块放入到你的应用中,而不是把你的应用放入到HTTP服务中。      本教程引导你逐步从最简单的Jetty服务实例到使用标准部署描述运行多个Web应用。大部分示例的源代码是标准Jetty项目的一部分。      在学习该教程之前,完成一个HelloWorld教程是值得的。该教程可以在“嵌入式Jetty网络研讨会记录”中找到。      Jetty版本:本教程的代码来自于Jetty7,但是也应该在Jetty 8中可以使用。对于最新的稳定版本,参考最新发行版的链接代码。可能与本教程中给出的代码例子有稍微的不同。

概述

      为了嵌入Jetty服务,通常执行下面的步骤:      1)创建一个服务      2)添加和配置连接器      3)添加和配置处理器      4)添加和配置Servlet、Webapp到处理器      5)启动服务      6)等待(join服务防止主线程退出)

创建一个服务

      下面的代码来自于SimplestServer.jar,实例化和运行一个最简单的Jetty服务http://download.eclipse.org/jetty/stable-9/xref/org/eclipse/jetty/embedded/SimplestServer.htmlpublic class SimplestServer{   public static void main(String[] args) throws Exception    {       Server server = new Server(8080);       server.start();       server.join();    }}      在端口8080上运行一个HTTP服务。这不是非常有用的服务,因为它不处理,对于每个请求只是返回一个404错误。

编写处理器

      为了生成请求的响应,Jetty要求在服务上设置一个Handler。一个处理器可能:1)  检查和修改HTTP请求2)生成完整的HTTP详情3)调用其他的处理器(参见HandlerWrapper)4)选择一个或者多个处理器调用(参考HandlerCollection)http://download.eclipse.org/jetty/stable-9/xref/org/eclipse/jetty/server/handler/HandlerWrapper.htmlHello world处理器:下面代码基于HelloHandler.java,显示一个简单的Helloworld处理器。public classHelloHandler extends AbstractHandler{    public void handle(String target,RequestbaseRequest,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>HelloWorld</h1>");    }}传递给handle方法的参数包括:1)  target - 请求的目标,它可以是一个URI或者命名分发器的名称2) baseRequest – Jetty可变请求对象,它总是解包的3)  request - 不可变的请求对象,它可能已经被封装4) response - 响应,它可能已经被封装处理器设置请求的状态,内容类型,在使用writer生成请求体之前标注请求已经处理(后续就不再处理)。下面的代码来自于OneHandler.java,显示Jetty服务如何使用该处理器。public staticvoid main(String[] args) throws Exception{    Server server = new Server(8080);    server.setHandler(new HelloHandler());     server.start();    server.join();}现在你知道基于Jetty编写一个HTTP服务所需要了解的所有东西。然而,复杂的请求处理通常使用多处理器构建。我们在后面章节中看看它是如何组合处理器的。你能查看Jetty的org.eclipse.jetty.server.handler包中有那些可用处理器。更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-11/109584p2.htm