Tomcat 7 有价值的新特性
今天到tomcat主站上查资料,发现Tomcat7都出到7.0.21且已经stable一段时间了,不禁搜索了一下相关信息,整理中发现了几个很有价值的新特性。
内存泄露的侦测和防止
线上应用有长时间不重启会出现运行异常的情况,7的这个特性可能会改善这个问题,详细说明如下:
开发者在部署他们写的程序到生产环境上时,经常会遇到Pemgen错误:OutOfMemoryError。这是由于内存泄露而引起的。通常开发者是通过增大permgen内存的大小去解决或者就是重新启动Tomcat。 Tomcat 7包含了一个新的特性,它通过把不能垃圾回收的引用对象移走的方法,能解决一些Permgen内存泄露的问题。
如下情况下会触发内存泄露: JDBC驱动的注册 一些日志框架 在ThreadLocals中保存了对象但没有删除它们 启动了线程但没停止
在war文件外使用别名去存储静态内容
Web应用程序需要静态资源文件,比如象CSS,Javascript和视频文件、图片文件等。通常都把它们打包放在war文件中,这将增加WAR文件的大小并且导致很多重复的加载静态资源。7允许使用新的aliases属性,指出静态文件资源的位置,可以通过使用Classloader.getResourceAsStream('/static/...')或者在链接中嵌入的方法让Tomcat去解析绝对路径,下面是一个在context.xml中配置的例子:
< ?xml version="1.0" encoding="UTF-8"? > < Context path="/Tomcat7demo" aliases="/static ...
Continue reading