`
changhongbao
  • 浏览: 117280 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Jetty实战(7)之嵌入式Jetty应用Demo

阅读更多

pom.xml:

<!-- jetty dependecies -->  
        <dependency>  
            <groupId>org.eclipse.jetty</groupId>  
            <artifactId>jetty-server</artifactId>  
            <version>9.0.0.v20130308</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.eclipse.jetty</groupId>  
            <artifactId>jetty-webapp</artifactId>  
            <version>9.0.0.v20130308</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.eclipse.jetty</groupId>  
            <artifactId>jetty-continuation</artifactId>  
            <version>9.0.0.v20130308</version>  
        </dependency>  
  
        <dependency>  
            <groupId>org.eclipse.jetty</groupId>  
            <artifactId>jetty-jsp</artifactId>  
            <version>9.0.0.v20130308</version>  
        </dependency>  
        <!-- jetty dependecies --> 

 demo:

package jetty.c1;  
  
import org.eclipse.jetty.server.Connector;  
import org.eclipse.jetty.server.Request;  
import org.eclipse.jetty.server.Server;  
import org.eclipse.jetty.server.ServerConnector;  
import org.eclipse.jetty.server.handler.*;  
import org.eclipse.jetty.servlet.ServletContextHandler;  
import org.eclipse.jetty.servlet.ServletHolder;  
  
import javax.servlet.ServletException;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import java.io.IOException;  
  
/** 
 * Created by Administrator on 2016/10/31. 
 */  
public class HelloHandler  extends AbstractHandler  
{  
    public void handle(String target,Request baseRequest,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>Hello "+request.getAttribute("welcome")+"</h1><div style=\"height:500px;background-image: url(data/nm.png);\">");  
    }  
  
    public static void main(String[] args) throws Exception  
    {  
        Server server = new Server();  
        // 设置在JVM退出时关闭Jetty的钩子。  
        server.setStopAtShutdown(true);  
        //server.setHandler(new HelloHandler());  
  
    //设定多个connector绑定多个端口  
        ServerConnector connector1 = new ServerConnector(server);  
        connector1.setPort(8080);  
  
        ServerConnector connector2 = new ServerConnector(server);  
        connector2.setPort(9090);  
  
        server.setConnectors(new Connector[] { connector1, connector2 });  
  
        //资源目录 列出文件名  
        ResourceHandler resourceHandler = new ResourceHandler();  
  
        resourceHandler.setDirectoriesListed(true);  
        resourceHandler.setResourceBase("D:\\360Downloads");  
        resourceHandler.setStylesheet("");  
  
        //设置静态目录路径  
        ContextHandler staticContextHandler = new ContextHandler();  
        staticContextHandler.setContextPath("/data");  
        //staticContextHandler.setContextPath("/files");  
        staticContextHandler.setHandler(resourceHandler);  
  
        ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);  
        servletContextHandler.setContextPath("/");  
  
        /**可在下面依次添加多个servlet**/  
        servletContextHandler.addServlet(new ServletHolder(new MyTestServlet("show")), "/show");  
        servletContextHandler.addServlet(new ServletHolder(new MyTestServlet("display")), "/display");  
        //servletContextHandler.addServlet(new ServletHolder(new SpuSimilarityServlet()), "/spu");  
        //servletContextHandler.addServlet(new ServletHolder(new SpuResultServlet()), "/search");  
        //  servletContextHandler.addServlet(new ServletHolder(new AdminServlet()), "/db");  
  
        //设置request等 回话值  
        HandlerWrapper wrapper = new HandlerWrapper() {  
            @Override  
            public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response)  
                    throws IOException, ServletException {  
                request.setAttribute("welcome", "Wylazy");  
                super.handle(target, baseRequest, request, response);  
            }  
        };  
  
        HandlerList handlers = new HandlerList();  
        handlers.addHandler(wrapper);  
        handlers.addHandler(servletContextHandler);  
        handlers.addHandler(staticContextHandler);  
        handlers.addHandler(new HelloHandler());  
        server.setHandler(handlers);  
  
        server.start();  
        server.join();  
    }  
}  

 

package jetty.c1;  
  
import com.google.gson.Gson;  
  
import javax.servlet.ServletException;  
import javax.servlet.ServletOutputStream;  
import javax.servlet.annotation.WebServlet;  
import javax.servlet.http.HttpServlet;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import java.io.IOException;  
import java.util.ArrayList;  
import java.util.List;  
  
/** 
 * Created by Administrator on 2016/10/31. 
 */  
public class MyTestServlet extends HttpServlet {  
  
    private String msg = "init";  
  
    public MyTestServlet(String msg) {  
        this.msg = msg;  
    }  
  
    @Override  
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        // TODO Auto-generated method stub  
        doPost(req, resp);  
    }  
  
    @Override  
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
  
        List<String> list = new ArrayList<String>();  
  
        list.add("A");  
        list.add("中国");  
        list.add("外国");  
        list.add(msg);  
  
        Gson g = new Gson();  
  
        //resp.setContentType("charset=utf-8");  
        ServletOutputStream out = resp.getOutputStream();  
        String json = g.toJson(list);  
        out.write(json.getBytes());  
        out.flush();  
        out.close();  
    }  
  
    @Override  
    protected void doDelete(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        super.doDelete(req, resp);  
    }  
  
    @Override  
    protected void doPut(HttpServletRequest req, HttpServletResponse resp)  
            throws ServletException, IOException {  
        super.doPut(req, resp);  
    }  
  
}  

 运行效果:

localhost:8080/9090

 

localhost:8080/show

http://localhost:8080/data/  文件目录展示:

分享到:
评论

相关推荐

    embedded-jetty-jsp:带有JSP支持的嵌入式Jetty示例

    示例:带JSP支持的嵌入式Jetty 这是一个maven项目,用于构建它: $ mvn clean package 要运行示例org.eclipse.jetty.demo.Main : $ mvn exec:exec 打开您的Web浏览器以: http://localhost:8080/ 停止码头: 使用...

    springboot-demo-helloworld-jetty.rar

    同时也可以修改默认值来满足特定的需求提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式# ...

    vaadin14-embedded-jetty:Vaadin 14 npm与使用Maven的Embedded Jetty演示

    一个演示项目,展示了可以从嵌入式Jetty运行Vaadin 14应用程序的一种简单main()方法。 开发和生产模式均受支持。 同样,该项目将其本身打包到一个扁平的uberjar和一个包含jar列表和运行脚本的zip文件中。 有关更多...

    Jfinalplugin,angularjfinal-angular-icedog.zip

    一个Jfinal angular的框架实现,属于jfinal-dreampie的一个demo,在线访问:... 可直接使用mvn jetty:run 使用嵌入式数据库h2,数据库可以自动验证生成初始化数据 图片: 标签:jfinal

    formio-demo:Formio,Java表单定义和绑定库的演示

    Web应用程序在嵌入式Jetty Servlet容器上运行。 请参阅gradle阶段任务生成的执行脚本。 建议在开发过程中使用动态重新加载类。 从Eclipse运行-在“调试配置”中设置以下参数: 项目:formio-demo(浏览以找到项目...

    code-memo:代码备忘录, 包含mybatis、spring、spring-boot、hbase、hive、guava、jdk等示例代码

    Code-memo ...嵌入式jetty服务,整合spring、mybatis springboot-demo springboot、jpa、hibernate访问mysql,并提供restful接口 opensource-utils google guaua 使用示例,hbase访问接口以及hbase操

    jfinalpluginsdreampie-jfinal.zip

    可直接使用mvn jetty:run 使用嵌入式数据库h2,数据库可以自动验证生成初始化数据 使用方式:1.导入IDEA,VCS-&gt;Checkout from Version Control-&gt;Github(如果没有在plugin里下载或启用) 然后输入项目地址 ...

    camel-cxf-jms-demo:示例 Apache Camel 应用程序(CXF、REST、JMS、缓存)

    单元测试( jUnit启动嵌入式Jetty进行测试) 环境 应用程序是通过以下方式创建的: JDK 8u40 Tomcat 8.0.* 技术栈 阿帕奇骆驼 2.15 Spring 4.1(上下文) Apache ActiveMQ 5.10 阿帕奇CXF 3 Ja

    jettyhelloworld

    适用于Java 11的Google App Engine标准的嵌入式Jetty服务器要迁移到Java 11运行时,您的应用程序必须具有启动Web服务器的Main类。 此样本是一个共享工件,该工件提供Main类来实例化HTTP服务器以运行嵌入式Web应用...

    statefulj-framework-demo-jpa:使用 StatefulJ 和 JPA 构建银行应用程序的演示

    基于 JPA 的银行演示一个完整的银行应用程序,运行在嵌入式、 、 、 和。回购: : 脚步git clone git@github....

    json-schema-validator-demo:Webapp演示了Heroku上托管的JSON模式验证

    该应用程序使用嵌入式Jetty服务器,并且是自包含的。 您需要安装JDK(至少1.6)和maven(最好安装3.0.x,但也可以使用2.x)。 进入主目录,输入: mvn clean install 这将下载所有必要的工件并准备一切。 然后使用...

    SpringMVC基础上的web框架

    Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 ...

    基于Spring MVC的web框架 1.1.11

    Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 ...

    一个可以直接运行的基于SpringMVC的web框架1.1.12

    Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 ...

    可以直接运行的基于SpringMVC的web框架示例,也可以直接当公司框架

    Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 ...

    statefulj-framework-demo-ddd:将 StatefulJ 集成到 DDD 架构中的演示

    一个完整的银行应用程序,运行在嵌入式、 、 、 和。 该演示采用方法进行架构。 特别是,这个演示展示了如何将集成到域实体中 回购: : 脚步 git clone git@github.com:statefulj/statefulj-framework-demo-ddd.git...

    基于SpringMVC的一个web框架

    Excel工具类 Word工具类 Java NIO实现socket工具类 分布式session jdk升级到1.7 嵌入式redis服务(只支持linux) 1.0.13 修改默认的beanName生成策略,controller参数扩展 1.0.14 分布式session使用zookeeper 1.0.15 ...

    screen_share:将您的桌面屏幕共享给基于Web的客户端

    Jetty用于嵌入式Web服务器/ WebSocket服务器。 这仅是视频(无音频),不适用于任何高fps的内容,例如电影/游戏等。仅用于简单的桌面共享。 高fps对于浏览器(javascript / Broadway)可能会占用大量资源。 使用...

Global site tag (gtag.js) - Google Analytics