tomcat和jetty对静态资源的处理和客户端缓存的处理

本文介绍了Tomcat和Jetty默认的defaultservlet如何处理静态资源,并探讨了在web.xml中的相关配置。尽管它们能处理静态资源,但大型网站通常使用Apache或Nginx以获得更好的性能。内容主要关注两者对静态资源的处理和客户端缓存支持。
摘要由CSDN通过智能技术生成
tomcat和jetty对静态资源的处理和客户端缓存的处理


原文链接:http://www.javaarch.net/jiagoushi/867.htm


这两个默认servlet名称都是defaultservlet,然后在web.xml中就可以添加下面的配置让应用支持都静态资源的处理,对应的这些静态资源的目录则是在webapp根目录下,这里其实可以不用配置servlet名称,对于名称为default的url,tomcat和jetty都会作为静态资源文件处理

	<servlet-mapping>
     	<servlet-name>default</servlet-name>
    	 <url-pattern>*.css</url-pattern>
	</servlet-mapping>
	 
	<servlet-mapping>
	    <servlet-name>default</servlet-name>
	    <url-pattern>*.gif</url-pattern>
	 </servlet-mapping>
	    
	 <servlet-mapping>
	     <servlet-name>default</servlet-name>
	     <url-pattern>*.jpg</url-pattern>
	 </servlet-mapping>
	    
	 <servlet-mapping>
	     <servlet-name>default</servlet-name>
	     <url-pattern>*.js</url-pattern>
	 </servlet-mapping>
	 
	 <servlet-mapping>
	     <servlet-name>default</servlet-name>
	     <url-pattern>*.swf</url-pattern>
	 </servlet-mapping>


那么我们来看看tomcat和jetty对静态资源的客户端缓存的处理逻辑:


tomcat,tomcat在default的servlet支持一些参数,如果有需要那么就需要配置servlet了,

	<servlet>  
	  <servlet-name>default</servlet-name>  
	  <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>  
	  <init-param>  
		  <param-name>debug</param-name>  
		  <param-value>0</param-value>  
	  </init-param>  
	  <init-param>  
		  <param-name>listings</param-name>  
		  <param-value>false</param-value>  
	  </init-param>  
	  <load-on-startup>1</load-on-startup>  
	</servlet> 

在对于静态资源处理的客户端缓存的代码如下

	// ETag header
    response.setHeader("ETag", cacheEntry.attributes.getETag());

    // Last-Modified header
    response.setHeader("Last-Modified", cacheEntry.attributes.getLastModifiedHttp());

这里的etag计算规则如下:

	long contentLength = getContentLength();
	long lastModified = getLastModified();
	if ((contentLength >= 0) || (lastModified >= 0)) {
		weakETag = "W/\"" + contentLength + "-" +
				   lastModified + "\"";
	}
	


输出的reponse header如下:

	HTTP/1.1 200 OK
	Server: Apache-Coyote/1.1
	Accept-Ranges: bytes
	ETag: W/"7482-1371188756000"
	Last-Modified: Fri, 14 Jun 2013 0
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值