- 浏览: 2188714 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
有时候,我们可能使用一个SOA服务,传递一些数据,但是我们又不想使用一些WebService服务,或者EJB重量级的JAVA EE框架,包括部署一个简单的Tomcat的Web服务,我们都不想去做,这时我们该用什么? jetty作为一个比tomcat还轻量级的servlet容器,可以以非常轻小的姿态,集成在我们的应用程序里面,甚至可以作为一个嵌入式的web容器来满足我们的一些需求,非常的方便。
下面散仙模拟一个,在一个机器上起了一个jetty服务,然后再另一个机器上通过使用jsoup访问http请求,得到测试数据,当然我们可以基于这个例子,改造出一些类似异构平台通信的服务,通过json或xml格式的数据,就可以使PHP,Python,Ruby,C#来访问JAVA处理完的数据,类似于轻量级的rest风格。
测试代码如下:
Servlet处代码
在另外一个机器上访问请求的代码:
打印的结果如下:
至此,一个关于jetty API使用的小例子就完成了,使用的jar包截图如下:
最后,散仙把jar包打包上传,用的到的朋友可以测一下!
下面散仙模拟一个,在一个机器上起了一个jetty服务,然后再另一个机器上通过使用jsoup访问http请求,得到测试数据,当然我们可以基于这个例子,改造出一些类似异构平台通信的服务,通过json或xml格式的数据,就可以使PHP,Python,Ruby,C#来访问JAVA处理完的数据,类似于轻量级的rest风格。
测试代码如下:
package com.qin.test; import java.util.concurrent.Executors; import org.eclipse.jetty.server.Connector; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ContextHandler; import org.eclipse.jetty.server.handler.HandlerList; import org.eclipse.jetty.server.handler.ResourceHandler; import org.eclipse.jetty.server.nio.SelectChannelConnector; import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.servlet.ServletHolder; import org.eclipse.jetty.util.thread.ExecutorThreadPool; import org.eclipse.jetty.util.thread.ThreadPool; import com.qin.servlet.MyTestServlet; /** * @author qindongliang * * 启动jetty测试服务 * * * **/ public class StartupServer { public static void main(String[] args)throws Exception { ResourceHandler resourceHandler = new ResourceHandler(); resourceHandler.setDirectoriesListed(true); resourceHandler.setResourceBase("data"); resourceHandler.setStylesheet(""); ContextHandler staticContextHandler = new ContextHandler(); staticContextHandler.setContextPath("/data"); //staticContextHandler.setContextPath("/files"); staticContextHandler.setHandler(resourceHandler); //添加servlet支持 ServletContextHandler servletContextHandler = new ServletContextHandler(ServletContextHandler.NO_SESSIONS); servletContextHandler.setContextPath("/"); /**可在下面依次添加多个servlet**/ servletContextHandler.addServlet(new ServletHolder(new MyTestServlet()), "/show"); //servletContextHandler.addServlet(new ServletHolder(new SpuSimilarityServlet()), "/spu"); //servletContextHandler.addServlet(new ServletHolder(new SpuResultServlet()), "/search"); // servletContextHandler.addServlet(new ServletHolder(new AdminServlet()), "/db"); HandlerList handlers = new HandlerList(); handlers.addHandler(servletContextHandler); handlers.addHandler(staticContextHandler); int hosts=9999;//端口号 Server server = new Server(hosts); // 设置线程池 ThreadPool threadPool = new ExecutorThreadPool(Executors.newFixedThreadPool(5)); server.setThreadPool(threadPool); // 设置连接参数 Connector connector = new SelectChannelConnector(); // 设置监听端口 connector.setPort(hosts); // 为服务设置连接器 server.setConnectors(new Connector[] { connector }); server.setHandler(handlers); server.start(); server.join(); } }
Servlet处代码
package com.qin.servlet; import java.io.IOException; import java.util.ArrayList; import java.util.List; 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 com.google.gson.Gson; @WebServlet("/show") public class MyTestServlet extends HttpServlet { @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("外国"); 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); } }
在另外一个机器上访问请求的代码:
package com.get.jetty; import org.jsoup.Connection; import org.jsoup.Connection.Method; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; /** * * @author qindongliang * 获取json数据 * * **/ public class GetJettyData { public static void main(String[] args)throws Exception { //使用jsoup获取jetty连接 Connection con=Jsoup.connect("http://localhost:9999/show").timeout(80000); con.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"); Document doc=con.post(); System.out.println(doc.text()); } }
打印的结果如下:
["A","中国","外国"]
至此,一个关于jetty API使用的小例子就完成了,使用的jar包截图如下:
最后,散仙把jar包打包上传,用的到的朋友可以测一下!
发表评论
-
记一次log4j不打印日志的踩坑记
2019-09-22 01:58 1588### 起因 前几天一个跑有java应用的生产集群(200多 ... -
在Java里面如何解决进退两难的jar包冲突问题?
2019-07-23 19:10 1252如上图所示: es api组件依赖guava18.0 ... -
如何轻松理解二叉树的深度遍历策略
2019-07-03 23:33 1150我们知道普通的线性数据结构如链表,数组等,遍历方式单一 ... -
为什么单线程Redis性能也很出色
2019-01-21 18:02 2221高性能的服务器,不一 ... -
如何将编程语言里面的字符串转成数字?
2019-01-11 23:23 2109将字符串转成数字在很 ... -
为什么Java里面String类是不可变的
2019-01-06 18:36 1680在Java里面String类型是不可变对象,这一点毫无疑问,那 ... -
关于Java里面volatile关键字的重排序
2019-01-04 18:49 1084Java里面volatile关键字主 ... -
多个线程如何轮流打印ABC特定的次数?
2018-12-11 20:42 6061之前的一篇文章,我给 ... -
聊聊Java里面的引用传递
2018-11-16 21:21 992长久以来,在Java语言里面一直有一个争论,就是Java语言到 ... -
理解计数排序算法的原理和实现
2018-10-11 10:03 2097计数排序(Counting sort) ... -
理解Java7和8里面HashMap+ConcurrentHashMap的扩容策略
2018-09-06 11:31 3394### 前言 理解HashMap和Con ... -
关于Java里面多线程同步的一些知识
2018-07-18 09:45 1111# 关于Java里面多线程同步的一些知识 对于任何Java开 ... -
Java单例模式之双检锁深入思考
2018-07-08 12:25 3298# Java单例模式之双检锁 ... -
关于Java里面多线程同步的一些知识
2018-07-08 12:23 1122# 关于Java里面多线程同步的一些知识 对于任何Java开 ... -
重新认识同步与异步,阻塞和非阻塞的概念
2018-07-06 14:30 1475# 重新认识同步与异步 ... -
线程的基本知识总结
2018-06-27 16:27 1063### (一)创建线程的方式 (1)实现Runnable接口 ... -
Java里面volatile关键字修饰引用变量的陷阱
2018-06-25 11:42 1389# Java里面volatile关键字修饰引用变量的陷阱 如 ... -
关于Java里面的字符串拼接,你了解多少?
2018-06-25 11:28 1373# 关于Java里面的字符串 ... -
深入理解Java内存模型的语义
2018-06-25 11:39 744### 前言 Java内存模型( ... -
如何证明Java多线程中的成员变量数据是互不可见的
2018-06-21 10:09 1509前面的几篇文章主要介绍了Java的内存模型,进程和线程的定义, ...
相关推荐
"简单迅速的web容器"可能指的是一个轻量级、快速启动且易于部署的Web服务器解决方案,适合小型项目或开发测试环境。 在提供的文件列表中,我们有以下几个关键文件: 1. **EasyWebSvr.exe**:这很可能是一个可执行...
在这种情况下,Jetty作为一个轻量级、快速且高度可配置的Web服务器和Servlet容器,成为了开发者们的另一种优秀选择。本文将深入探讨"java web开发部署神器--jetty插件",带你领略Jetty在Java Web开发中的魅力。 ...
Java Jetty容器是一款轻量级、高性能的HTTP服务器和Servlet容器,与Apache Tomcat相似,但因其快速启动和较小的内存占用而广受开发者欢迎。Jetty由Eclipse基金会维护,是一个开源项目,其设计目标是提供一个简单、...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它允许开发者将Web服务器直接嵌入到他们的应用中,从而提供了极大的灵活性和控制权。Jetty被广泛应用于各种项目,从小型微服务到大型分布式系统,都有其...
Jetty 6是一款轻量级、高性能的Java Web服务器和Servlet容器,因其可嵌入式使用而备受开发者青睐。在Eclipse这样的集成开发环境中,你可以直接通过Starter类快速启动和运行Jetty服务,大大简化了Web应用的部署流程。...
Jetty 是一个开源的servlet容器... Jetty 可以作为嵌入式服务器使用,Jetty的运行速度较快,而且是轻量级的,可以在Java中可以从test case中控制其运行。从而可以使自动化测试不再依赖外部环境,顺利实现自动化测试。
Jetty 8是一款轻量级、高性能的Java Web服务器和HTTP服务器容器,广泛用于开发、测试和部署Web应用程序。这个压缩包包含Jetty 8版本的实现及其依赖库,是学习和理解Jetty工作原理,尤其是NIO(非阻塞I/O)和Servlet...
Jetty是一个轻量级、高效的嵌入式Java HTTP服务器和Servlet容器,它被广泛用于各种项目,从简单的HTTP服务到复杂的Web应用。本工具利用Jetty作为基础,提供了一种对Java应用性能进行深入洞察的方式。 该工具的核心...
该项目是采用Java语言开发的轻量级Zhiqim Httpd源码,整体包含231个文件,涵盖186个Java源文件、14个XML配置文件、5个JKS密钥库文件、4个JAR包文件、3个zml文件、3个prefs文件、2个txt文件、2个htm文件、1个...
在Spring Boot框架中,开发者可以选择不同的嵌入式Web服务器作为应用程序的容器,其中最常见的是Tomcat和Jetty。本文将深入探讨如何在Spring Boot项目中从Tomcat切换到Jetty容器,以及这两个容器的特点和使用场景。 ...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它允许开发者将Web服务器功能直接嵌入到Java应用程序中,无需外部服务器。本案例主要探讨Jetty在嵌入式Web编程中的多种实现方法,旨在帮助开发者更好地...
Jetty 9是一款轻量级、高性能且开源的Servlet容器,它主要负责处理基于Java Servlet规范的应用程序。作为Java服务的一部分,Jetty9为开发者提供了高效、稳定且灵活的平台来部署和运行Web应用程序。 首先,Jetty 9...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它在开源社区中广受欢迎,尤其适用于嵌入式系统和分布式应用程序。标题中的"jetty-distribution-9.3.5.v20151012"指的是Jetty的一个发行版本,具体为9.3.5...
总结一下,Jetty作为一个强大的Servlet容器,提供了轻量级、快速和灵活的Web应用开发环境。通过学习如何配置和运行Jetty服务器,以及如何注册和管理Servlet,你可以为你的Java Web应用打下坚实的基础。不断探索Jetty...
Jetty容器是一款轻量级、高性能的开源Java Web服务器和HTTP服务器,主要被设计用于处理Web应用程序。它以其模块化架构、低内存占用和对Java Servlet及JSR-356(WebSocket)标准的支持而闻名。Jetty由Eclipse基金会...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它被广泛应用于各种规模的项目,特别是作为嵌入式服务器使用。嵌入式Jetty允许开发者直接在应用程序中启动和管理Web服务器,无需单独部署或运行独立的...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,它被广泛应用于各种规模的项目,从微型服务器到大型企业级应用。标题"jetty for java"表明我们将要探讨的是如何在Java环境中使用Jetty服务。描述中的...
Jetty是一款轻量级、高性能的Java Web服务器和Servlet容器,因其开源、小巧且易于集成的特点,被广泛应用于各种项目中。本实例大全将全面解析Jetty在不同场景下的使用,帮助你深入理解和掌握Jetty的特性。 1. **...
Jetty是一款轻量级、高性能的开源HTTP服务器和Servlet容器,它被广泛应用于各种Java Web应用的部署。作为一款嵌入式服务器,Jetty可以直接在应用程序中运行,无需单独的Web服务器进程,这使得它在分布式系统、微服务...