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 ...
随机推荐
- node学习笔记(三)
//事件驱动events //events是node最重要的模块没有之一,因为node.js本身的架构就是事件式的,而他提供了唯一的接口,所以堪称node.js事件编程的基石; //events几乎被 ...
- ES 2.4 bigdesk 安装失败解决方案.
把zip包下载下来 https://github.com/lukas-vlcek/bigdesk/tree/master 在plugin中自己建一个bigdesk 文件夹 在bigdesk下建一个_s ...
- 字符串s中从第i个位置起取长度为len的子串,函数返回子串链表
/*已知字符串采用带结点的链式存储结构(详见linksrting.h文件),请编写函数linkstring substring(linkstring s,int i,int len),在字符串s中从第 ...
- Linux 将文件夹下的所有文件复制到另一个文件里
如何将文件夹/home/work下的文件复制到/home/temp里面? 使用命令: cp -R /home/work/* /home/temp *表示所有文件 但是/home/work 下的隐藏文件 ...
- java jdk动态代理
在面试的时候面试题里有一道jdk的动态代理是原理,并给一个事例直接写代码出来,现在再整理一下 jdk动态代理主要是想动态在代码中增加一些功能,不影响现有代码,实现动态代理需要做如下几个操作 1.首先必 ...
- SpringMVC常用注解實例詳解2:@ModelAttribute
我的開發環境框架: springmvc+spring+freemarker開發工具: springsource-tool-suite-2.9.0JDK版本: 1.6.0_29tomcat ...
- 【Thinking in Java】组合、继承和代理的区别
三者的定义: 组合:在新类中new 另外一个类的对象,以添加该对象的特性. 继承:从基类继承得到子类,获得基类的特性. 代理:在代理类中创建某功能的类,调用类的一些方法以获得该类的部分特性. 使用场合 ...
- Spring笔记--0907
包含ioc和aop两大核心概念 aop----事务管理 spring框架运用的设计模式(查一下) ---------------------------------------Ioc(控制反转)和Di ...
- JavaWeb的学习之Servlet(转载自孤傲苍狼)
一.Servlet简介 Servlet是sun公司提供的一门用于开发动态web资源的技术. Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向 ...
- iOS上简单推送通知(Push Notification)的实现
iOS上简单推送通知(Push Notification)的实现 根据这篇很好的教程(http://www.raywenderlich.com/3443/apple-push-notification ...