三期_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 。会看到网页图标变成了一个三期_day12_其它+jetty的使用


Jetty的长处: 之前没有使用。后来是项目完毕了才去研究jetty的,太亏了。由于找个BUG你要不停的启动server和清缓存,

改动一点java文件就要重新启动。真麻烦。假设使用jetty的话測试的话就非常舒服了。

以下是网上找的资料,有些东西还看不懂。比如设计模式,AJP。就简单的看一下。好有个印象。NIO,BIO....


1.是什么? 
在使用了 Ajax 的 Web 2.0 的应用程序中,每一个连接须要保持更长的时间,这样线程和内存的消耗量会急剧的添加。

jetty的continuations在短连接上不见得有非常大的优势,可是在长连接或者在后台訪问IO资源(数据库,网络等)造成的 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


我是菜鸟,我在路上。