三期_day12_其它+jetty的使用
1.大致总结
行程管理和留言反馈和前面的思路差点儿相同,这里就不多啰嗦了。经过十几天的写写停停。有了一个初步的进展了,再往下写也没有啥欲望了。还是研究下android和server,设计模式和网络这些东西吧,毕竟留给我的时间也不多了。这个暑假一过,那么也就该去实习了,想想大学真特么快,这俩个月,这个月已经过了1/3,没有干啥事,天天吃吃喝喝。打打游戏。
日子也过得满意。后面就写一下在开发中遇到一些不懂的东西吧,比如mybatis中的事务,jetty的使用和原理,以及打包公布。
2.jetty的使用
http://search.maven.org/#search 在这个站点输入"jetty-maven-plugin",找到groupId为org.eclipse.jetty,在pom.xml中增加例如以下代码。
<build>
<finalName>crm</finalName>
<plugins>
<plugin>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>9.3.0.M2</version>
<configuration>
<scanIntervalSeconds>10</scanIntervalSeconds>
<webApp>
<contextPath>/crm</contextPath>
</webApp>
</configuration>
<executions>
<execution>
<id>jetty-run</id>
<phase>install</phase> <!--在maven install时就捎带执行jetty:run了。方便公布 -->
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
当然里面的配置能够任意改动,jetty的启动和停止都可设置,扫描时间。
做完这些后,项目右键"Run as" -> Maven build -> Name:随便 Goals:jetty:run -> 点击Run 就可以
这个时候输入http://localhost:8080/crm/login.html 。会看到网页图标变成了一个
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
Jetty的长处: 之前没有使用。后来是项目完毕了才去研究jetty的,太亏了。由于找个BUG你要不停的启动server和清缓存,
改动一点java文件就要重新启动。真麻烦。假设使用jetty的话測试的话就非常舒服了。
以下是网上找的资料,有些东西还看不懂。比如设计模式,AJP。就简单的看一下。好有个印象。NIO,BIO....
servlet响应慢问题上。会有非常大的优势,他不会让一个线程傻傻地在等待数据库訪问完毕,而是会放入线程池去处理其它请求。continuations的引入能用非常少的线程处理大量的请求。
Jetty 能够作为嵌入式server使用,Jetty的执行速度较快。并且是轻量级的,能够在Java中能够从test case中控制其执行。从而能够使自己主动化測试不再依赖外部环境,顺利实现自己主动化測试。
性能比較
单纯比較 Tomcat 与 Jetty 的性能意义不是非常大,仅仅能说在某种使用场景下,它表现的各有差异。
由于它们面向的使用场景不尽同样。
从架构上来看 Tomcat 在处理少数非常繁忙的连接上更有优势,也就是说连接的生命周期假设短的话,Tomcat 的整体性能更高。
而 Jetty 刚好相反,Jetty 能够同一时候处理大量连接并且能够长时间保持这些连接。比如像一些 web 聊天应用很适合用 Jetty 做server,像淘宝的 web 旺旺就是用 Jetty 作为 Servlet 引擎。
另外因为 Jetty 的架构很easy,作为server它能够按需载入组件,这样不须要的组件能够去掉,这样无形能够降低server本身的内存开销。处理一次请求也是能够降低产生的暂时对象。这样性能也会提高。另外 Jetty 默认使用的是 NIO 技术在处理 I/O 请求上更占优势,Tomcat 默认使用的是 BIO。在处理静态资源时,Tomcat 的性能不如
Jetty。
特性比較
作为一个标准的 Servlet 引擎。它们都支持标准的 Servlet 规范,还有 Java EE 的规范也都支持,由于 Tomcat 的使用的更加广泛,它对这些支持的更加全面一些,有非常多特性 Tomcat 都直接集成进来了。可是 Jetty 的应变更加高速,这一方面是由于
Jetty 的开发社区更加活跃,还有一方面也是由于 Jetty 的改动更加简单,它仅仅要把对应的组件替换就好了,而 Tomcat 的总体结构上要复杂非常多,改动功能比較缓慢。所以 Tomcat 对最新的 Servlet 规范的支持总是要比人们预期的要晚。
參考站点http://www.ibm.com/developerworks/cn/java/j-lo-jetty/
參考站点http://www.cnblogs.com/fnng/archive/2011/12/16/2290587.html
我是菜鸟,我在路上。
三期_day12_其它+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包的形式发布,所以 ...
随机推荐
- cocos2d-html5 Layer 和 Scene 创建模式
var myLayer = cc.Layer.extend({ init:function() {//2 界面 var bRet = false; if (this._super()) { bRet ...
- NHibernate与EF(Entity Framework)的区别
http://www.cnblogs.com/lukun/archive/2011/05/16/2047587.html NHibernate与EF(Entity Framework)的区别 http ...
- Android Button悬浮在SurfaceView上
实现Button悬浮于与SurfaceView之上实现 注意:你实现的SurfaceView和android中的Button,EditView是同级的,不能把一个包含在另一个里面 1.创建自己的Sur ...
- function(a)
问题: 问个初级的问题int a = 8;function(a);这里在function中的a值是引用a内存中的数据,还是新开辟内存后将a的值赋值到新内存供函数调用. 回答: int a = 8; ...
- Android 完全退出程序,以及再按一次返回键退出程序
再按一次返回键退出最终完整方案: boolean isExit; @Override protected void onCreate(Bundle savedInstanceState) { ...
- 【HDOJ】1508 Alphacode
简单DP.考虑10.20(出现0只能唯一组合).01(不成立). /* 1508 */ #include <iostream> #include <string> #inclu ...
- 应付期间 Payables Periods
(N) AP > Accounting > Control payables periods Click [Period Status] column to Open.
- poj2229Sumsets
http://poj.org/problem?id=2229 挺好的一公式.. #include <iostream> #include<cstdio> #include< ...
- hadoop2.2编程:各种API
hadoop2.2 API http://hadoop.apache.org/docs/r0.23.9/api/index.html junit API http://junit.org/javado ...
- Reflector+Reflexil 相结合实现对DLL文件修改
在工作过程中,我们有可能遇到这样的问题:公司发给客户的软件包突然报错了,但是你知道哪里报错了,而这个代码已经编译成DLL文件了,源代码不在自己这里.怎么办呢?还好现在有Reflexil插件,这个插件只 ...