jetty
相关的文章太多了,我只按照自己的意思做简单总结。
参见:
http://www.cnblogs.com/duanxz/p/3154982.html
http://www.cnblogs.com/windlaughing/archive/2013/06/07/3125358.html
http://www.cnblogs.com/duanxz/p/3154487.html 太过复杂详细。。 谁会这么用呢??
重要的几点:
1 下载相关的jar —— 这个自然的
2 写自己的server —— 继承Server (jetty提供的Server)。
XmlConfiguration configuration = new XmlConfiguration( // 这个XmlConfiguration是jetty提供的
new FileInputStream(this.xmlConfigPath)); // 这个xmlConfigPath路径即jetty.xml
configuration.configure(this);
jetty.xml 是jetty框架的基础配置文件(从名字可知一二)。 主要描述了ip、端口、连接池信息、空闲时间等
web.xml 是servlet的规范,在此时依然有效,依然是用来配置servlet的。—— 相对下者,这个可以理解为 用来配置自定义的servlet 等
webdefault.xml 这个是jetty在提供服务的时候需要注册的自身的一些 基础的配置、启动参数、servlet、listener等, 差不多跟tomcat的配置一样复杂而完整。
3 WebAppContext 顾名思义, 是jetty的web app 上下文环境(非常基础不可或缺的一个接口)。 其提供的几个方法静态方法很重要
setContextPath
setDefaultsDescriptor
setResourceBase
setWar
ContextHandlerCollection handler = new ContextHandlerCollection();
WebAppContext webapp = new WebAppContext();
// WebAppContext 属于handler, extends ServletContextHandler implements WebAppClassLoader.Context
webapp.setContextPath(contextPath); // contextPath相当于一个主机下一个独立的app、 同tomcat一个主机可对应多个contextPath
webapp.setDefaultsDescriptor("./jetty/etc/webdefault.xml");
if (!warDeployFlag) {
webapp.setResourceBase(resourceBase);
webapp.setDescriptor(webXmlPath);
} else {
webapp.setWar(warPath);
}
handler.addHandler(webapp);
super.setHandler(handler);
4 调用Server提供的启动方法即可: super.start() —— 这样就像执行了tomcat的startu.bat一样,
jetty将会解析相关文件,监听相应端口,然后响应请求!
5 部署有两种方式
目录部署 ——通过setResourceBase(resourceBase) 和 setDescriptor(webXmlPath) —— 这两者似乎是可以分离而无依赖的。所以提供了两个方法。。
war部署 ——通过setWar (里面有包含webXmlPath ,所以不用设置了) 。比较慢, 因为,显然的是——解析WAR文件浪费比较时间
6
org.eclipse.jetty.server.Server 是重中之重。 相当于tomcat的Bootstrapper??
参考 http://download.eclipse.org/jetty/stable-7/apidocs/org/eclipse/jetty/server/Server.html
提供有:
start
stop
join ?
addBean removeBean之类的 —— 这个有些不太理解。。。
相当之多 ! 可见其对 web程序的控制, 非常的方便灵活 —— 想起就起,想停就停。。。
jetty的更多相关文章
- No plugin found for prefix ‘jetty’ in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories
maven配置文件(最大的那个)的<pluginGroups></pluginGroups>增加一行如下<pluginGroups><pluginGroup& ...
- sorl6.0+jetty+mysql搭建solr服务
1.下载solr 官网:http://lucene.apache.org/solr/ 2.目录结构如下 3.启动solr(默认使用jetty部署) 在path路径下将 bin文件夹对应的目录加入,然后 ...
- 嵌入式服务器jetty,让你更快开发web
概述 jetty是什么? jetty是轻量级的web服务器和servlet引擎. 它的最大特点是:可以很方便的作为嵌入式服务器. 它是eclipse的一个开源项目.不用怀疑,就是你常用的那个eclip ...
- 详解web容器 - Jetty与Tomcat孰强孰弱
Jetty 基本架构 Jetty目前的是一个比较被看好的 Servlet 引擎,它的架构比较简单,也是一个可扩展性和非常灵活的应用服务器.它有一个基本数据模型,这个数据模型就是 Handler(处理器 ...
- IntelliJ IDEA使用(二):tomcat和jetty配置
上一讲用idea创建了maven web项目,接下来我们把项目发布到tomcat和jetty运行,以便进一步地开发和调试 配置tomcat 第一.打开菜单栏 第二.点击设置按钮,添加应用服务器,选择t ...
- Jetty+Xfire 嵌入式webService应用实践
1:使用场景:Mock公安网证件信息校验 2:Jetty嵌入式Server启动方式:由于Jetty9.x(需jdk7.x以上)以后Server启动方式有略微差异,所以分开说明: 2.1 Jetty9. ...
- 将jetty嵌入到应用中的简单案例
前面说过jetty最广泛的应用是可以方便的嵌入到应用程序中,而不是作为应用服务器,下面就用最简单的demo来演示一个最简单的应用 1.下载并导入依赖 首先应该建立一个普通的java项目,然后把依赖包导 ...
- 修改jetty的默认端口号
jetty默认端口是8080,修改端口号也很简单,首先进入到jetty服务器安装目录下会看到start.ini配置文件,这里就是jetty启动时加载的配置,其中包括要加载的模块,超时时间配置还有这里的 ...
- Linux下安装jetty服务器
jetty和我们通常使用的tomcat一样,是一个开源的servlet容器,特点是轻量易部署,一方面jetty可以作为web容器使用,另一方面也是最一般的方式是jetty以一组jar包的形式发布,所以 ...
- Servlet引擎Jetty之入门1
Jetty与tomcat一样,HttpWeb容器,支持实现Servlet规范. 详细介绍参考:https://www.ibm.com/developerworks/cn/java/j-lo-jetty ...
随机推荐
- VB中的API详解
一.API是什么? 这个我本来不想说的,不过也许你知道其它人不知道,这里为了照顾一下新手,不得不说些废话,请大家谅解. Win32 API即为Microsoft 32位平台的应用程序编程接口(Appl ...
- python基础第四天(1)
冒泡算法--算法 需求:请按照从小到大对列表 [13, 22, 6, 99, 11] 进行排序 思路:相邻两个值进行比较,将较大的值放在右侧,依次比较! 第一步 li = [13, 22, 6, 99 ...
- HTML5所有标签汇总
来自lampbrother兄弟连HTML5与CSS3教程.<xmp> 结构标签:(块状元素) 有意义的div<article> 标记定义一篇文章<header&g ...
- 简单的dp
有趣的数:(动态规划,状态转移) #include<stdio.h> ][]; int main() { int n,i; ; i<; i++) dp[i][]=; while(~s ...
- vi/vim使用进阶: vimrc初步
本节所用命令的帮助入口: :help compatible :help mapleader :help map :help autocmd 当vim在启动时,如果没有找到vimrc或gvimrc,它缺 ...
- Android Sqlite 工具类封装
鉴于经常使用 Sqlite 数据库做数据持久化处理,进行了一点封装,方便使用. 该封装类主要支持一下功能 支持多用户数据储存 支持 Sqlite数据库升级 支持传入 Sql 语句建表 支持 SQLit ...
- 虚拟机安装LINUX网络配置注意的问题
1.如果你配置本地IP,不上网,网卡选项可以选择仅主机模式,如果要上网,就直接选择桥接模式,复制物理网络这个选项 2.将NET1网卡(仅主机模式)选中,然后进入下面这个配置选项 上面方框内的IP段 ...
- 【随记】Hello World小记
今天装Python,如下: 突然想到,到现在,我已经数不清写过多少遍Hello World了. 最早是初一学VB的时候,用Label1在Form1上画一个,然后修改Caption属性为“Hello W ...
- [转] How to import a large data set using XPO efficiently within a transaction
https://www.devexpress.com/Support/Center/Example/Details/T333879
- Linq to Sql 聚合查询
//输出体重最大的同学,并要求最大体重得大于39,并按照体重大下,对分组结果进行排序. var result = from query in linq.Student group query by q ...