Tomcat NIO/APR对静态资源提速|tomact图片缓存|tomcat静态资源缓存|tomcat内部缓存

tomact图片缓存| |tomcat静态资源缓存 tomcat内部缓存  

 

http://xiaoz5919.iteye.com/blog/1255273

 

1.Tomcat如何处理静态资源?处理静态资源很简单,只需根据URI定位到文件,然后读取文件,写到response的outputstream中去,但tomcat是如何处理,是不是通过servlet container统一处理,还有另有其他方式?最终我发现是由DefaultServlet来处理。

2.APR/NIO Connecter不仅能提高吞吐量,而且使用sendFile使用内核IO,而不是java通过封装以后的IO提高对静态文件的处理。

3.是不是所有的文件都交给sendFile来处理呢?不是,在DefaultServlet中有一个sendFileSize,默认为48k,也就是说只有48k以上的文件才能通过sendFile方式来处理。

4.如有修改DefaultServlt的默认参数,只在web.xml中重新配置DefaultServlet,并修改initParameter。

5.Tomcat代码研究:Tomcat对静态资源提供缓存提高了性能

Java代码   收藏代码
  1. if (serveContent) {  
  2.                try {  
  3.                    response.setBufferSize(output);  
  4.                } catch (IllegalStateException e) {  
  5.                    // Silent catch  
  6.                }  
  7.                if (ostream != null) {  
  8.                    //是否满足使用sendFile的条件,如满足则使用  
  9.                    if (!checkSendfile(request, response, cacheEntry, contentLength, null))  
  10.                       //不满足,则copy文件到response中的outputStream中  
  11.               //  
  12.                        copy(cacheEntry, renderResult, ostream);  
  13.                } else {  
  14.                    copy(cacheEntry, renderResult, writer);  
  15.                }  
  16.            }  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值